home *** CD-ROM | disk | FTP | other *** search
/ FANTA 97 / FANTA97A (backup).iso / TAIKEN / WIN95 / 瞗 / TOPLEVEL.ORG < prev    next >
Text File  |  1995-08-24  |  142KB  |  5,098 lines

  1. #include <windows.h>
  2. #include <windowsx.h>
  3. #include <mmsystem.h>
  4. #include <commdlg.h>
  5. #include <stdio.h>
  6. #include <ctype.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <setjmp.h>
  10. #include <time.h>
  11. #include <mbstring.h>
  12. #include "emarn.h"
  13. #include "musashi.h"
  14. #include "resource.h"
  15.  
  16. #include "always.h"
  17. #include "pai.h"
  18. #include "sethai.h"
  19. #include "form.h"
  20. #include "mygraph.h"
  21. #include "menu.h"
  22. #include "key.h"
  23. #include "cond.h"
  24. #include "para.h"
  25. #include "evsub.h"
  26. #include "ddgraph.h"
  27.  
  28. /*    ======================windowsö┼ò╧ë╗òöò¬=======================    */
  29. E_FLAG    eFlag;
  30. BOOLEAN    emrn=FALSE;
  31. static int    eErr;
  32. static int    tonke;
  33. static int    dl1,ton_id;
  34. static int    na = 0;
  35. static enum Cond condition = COND_THUMO;
  36. static TEHAI *tehai;
  37. static enum Cond workID;
  38. static int hai, wh;            /* haitype */
  39. static int prwcnt, dl2;
  40. static int dl3, work, workp;
  41. static int dl4;
  42. static enum Cond cnd = COND_STEHAI;
  43. int Hp;
  44. int Hcnd,Hin;
  45. int Co;
  46. int CPK_x,CPK_y;
  47. enum Cond RTK[4];            /* âRâ}âôâh     */
  48. enum Cond CPKR[5];
  49. int RTK_point;
  50. int RTK_cnt;
  51. int CPK_point;
  52. int CPK_cnt;
  53. int tkan_flag;
  54. BOOLEAN reach_flag;
  55. BOOLEAN thumo_flag;
  56. BOOLEAN chee_flag;
  57. BOOLEAN pon_flag;
  58. BOOLEAN kan_flag;
  59. BOOLEAN ron_flag;
  60. int chee_in;            /* â`ü[é╠æIæ≡ùp */
  61. int chee_cnt;
  62. int chee_work[3];
  63. extern struct HAI_DISP_POS    TP[4];    
  64. int ind_group[7][4];
  65. extern int gind_cnt[5];
  66. static int    mastNo;
  67.  
  68. extern int ind_cnt;
  69. extern int ind_set[14];
  70. extern int gind_no[5];
  71. extern int gind_cnt[5];
  72. extern int gind_top[5];
  73. static int    reaSteFlag;
  74. extern int USR_stehai;
  75.  
  76. extern int    nakiMarks[4];
  77. extern int far base_x[4];
  78. extern int far base_y[4];
  79. extern int far hai_w[4];
  80. extern int far hai_h[4];
  81. extern HBITMAP    far    usrButton[6];
  82. extern HBITMAP    far    opening;
  83. static int        nakiMatrix[6];/* û┬é½â|âbâvâAâbâvùpé╠û┬é½Äφò╩èmÆΦò╧Éö */
  84. static int        nakiChecker[6];/* û┬é½â|âbâvâAâbâvé╠â`âFâbâNùp */
  85. extern int        tehaiMouse[20];/* ÄΦövé╠â}ü[âJü[é≡éWâhâbâgòéé⌐é╣éΘé╜é▀é╠ÄΦövéÉéÅéÅéîò╧Éö */
  86. extern int        allTehaiNo;/* æSÄΦözÉöé╠ïLÿ^ùpò╧Éö */
  87. int                seFlag;
  88.  
  89. /*int    shaiNo[4][20];
  90. int    shaiState[4][20];
  91. int    shai[4];*/
  92. char    scoreName[4][13];
  93. char    scoreSt1[4][32];
  94. char    scoreSt2[4][32];
  95.  
  96. YAKU_MRX    yakuMatrix;
  97.  
  98. static char    dispMessage[16];
  99. static int        reachMatrix[4];
  100.  
  101. static int        selectChar;
  102.  
  103. /*    â_âCâAâìâO    */
  104. long FAR PASCAL _export WndProc (HWND, UINT, UINT, LONG) ;
  105. BOOL FAR PASCAL _export    InitDlgProc(HWND, UINT, UINT, LONG);
  106. BOOL FAR PASCAL _export    MastDlgProc(HWND, UINT, UINT, LONG);
  107. BOOL FAR PASCAL _export    CharDlgProc(HWND, UINT, UINT, LONG);
  108. BOOL FAR PASCAL _export    UtilDlgProc(HWND, UINT, UINT, LONG);
  109. BOOL FAR PASCAL _export    EnviDlgProc(HWND, UINT, UINT, LONG);
  110. BOOL FAR PASCAL _export DekuDlgProc(HWND, UINT, UINT, LONG);
  111. BOOL FAR PASCAL _export    Ha99DlgProc(HWND, UINT, UINT, LONG);
  112. BOOL FAR PASCAL _export    DispDlgProc(HWND, UINT, UINT, LONG);
  113. BOOL FAR PASCAL _export    ScorDlgProc(HWND, UINT, UINT, LONG);
  114. BOOL FAR PASCAL _export    EScrDlgProc(HWND, UINT, UINT, LONG);
  115. BOOL FAR PASCAL _export    YakuDlgProc(HWND, UINT, UINT, LONG);
  116. BOOL FAR PASCAL _export    RyukDlgProc(HWND, UINT, UINT, LONG);
  117. BOOL FAR PASCAL _export    MesdDlgProc(HWND, UINT, UINT, LONG);
  118. BOOL FAR PASCAL _export    MemiDlgProc(HWND, UINT, UINT, LONG);
  119. BOOL FAR PASCAL _export    TotaDlgProc(HWND, UINT, UINT, LONG);
  120. BOOL FAR PASCAL _export    ProfDlgProc(HWND, UINT, UINT, LONG);
  121. BOOL FAR PASCAL _export    KatiDlgProc(HWND, UINT, UINT, LONG);
  122. BOOL FAR PASCAL _export    ChgpDlgProc(HWND, UINT, UINT, LONG);
  123. BOOL FAR PASCAL _export    ChgnDlgProc(HWND, UINT, UINT, LONG);
  124. BOOL FAR PASCAL _export    FddsDlgProc(HWND, UINT, UINT, LONG);
  125. BOOL FAR PASCAL _export    ChrEDlgProc(HWND, UINT, UINT, LONG);
  126. BOOL FAR PASCAL _export    AbouDlgProc(HWND, UINT, UINT, LONG);
  127. static FARPROC        lpfnWndpDlgProc;
  128. static FARPROC        lpfnInitDlgProc;
  129. static FARPROC        lpfnMastDlgProc;
  130. static FARPROC        lpfnCharDlgProc;
  131. static FARPROC        lpfnUtilDlgProc;
  132. static FARPROC        lpfnEnviDlgProc;
  133. static FARPROC        lpfnDekuDlgProc;
  134. static FARPROC        lpfnHa99DlgProc;
  135. static FARPROC        lpfnDispDlgProc;
  136. static FARPROC        lpfnScorDlgProc;
  137. static FARPROC        lpfnEScrDlgProc;
  138. static FARPROC        lpfnYakuDlgProc;
  139. static FARPROC        lpfnRyukDlgProc;
  140. static FARPROC        lpfnMesdDlgProc;
  141. static FARPROC        lpfnMemiDlgProc;
  142. static FARPROC        lpfnTotaDlgProc;
  143. static FARPROC        lpfnProfDlgProc;
  144. static FARPROC        lpfnKatiDlgProc;
  145. static FARPROC        lpfnChgpDlgProc;
  146. static FARPROC        lpfnChgnDlgProc;
  147. static FARPROC        lpfnFddsDlgProc;
  148. static FARPROC        lpfnChrEDlgProc;
  149. static FARPROC        lpfnAbouDlgProc;
  150. static HINSTANCE    hDlgInstance;
  151. /*    é`éoû╝    */
  152. char         szAppName [] = "musashi" ;
  153. char        iconName [] = "IDI_ICON1" ;
  154. char        cursorName[] = "IDC_CURSOR2";
  155. char           *kyokuMessage;
  156. char         ba_msg[2][4][11] =    {
  157.                                     {"ôîü@êΩü@ï╟","ôîü@ô±ü@ï╟","ôîü@ÄOü@ï╟","ôîü@âëü@âX"},
  158.                                     {"ô∞ü@êΩü@ï╟","ô∞ü@ô±ü@ï╟","âëü@âXü@æO"," âIü[âëâX "}
  159.                                 };
  160.  
  161. /*    Ådùvé╚éαé±    */
  162. HINSTANCE    far    hInst;
  163. HWND        far    hWnd;
  164. HMENU        far    hMenu;
  165. HMENU        far    hSubMenu;
  166. HMENU        far    hPopMenu;
  167. HDC            far    hdc;
  168. extern HCURSOR    far    winCursor[4];
  169. static int        xsClip,xeClip,ysClip,yeClip;
  170. static BOOLEAN    dir99,dirThumo;
  171. static int        jumpFlag;
  172. int    far            RTK_Cont[4];
  173. int    far            CPKR_Cont[5];
  174. extern int        pick_man_list[17];
  175. static int        reaStick;
  176. static int        meijin;
  177. static int        doraFlag;
  178. extern int        systemError;
  179.  
  180. /* ïîè╓ÉöÆΦï` */
  181. extern enum Cond Com_thumo(int id);
  182. extern BOOLEAN canagari(TEHAI *tehai,int hai);
  183. extern int getcalscr(TEHAI *, int, BOOLEAN);
  184. extern int siko(int);
  185. extern int haicount(HAIS *,int);
  186. extern void indicate_hai(int);
  187. extern void open_window_RTK(TEHAI *);
  188. extern void learn_naki(int, int);
  189. extern BOOLEAN canreach2(TEHAI *,int);
  190. extern int checkhai(TEHAI *,int);
  191. extern int siko2(int);
  192. extern void unindicate_hai(int);
  193. extern int Com_stehai(int);
  194. extern enum Cond Com_naki(int, int, int);
  195. extern void init_top_eval(int);
  196. extern int ponok(int, int);
  197. extern int kanok(int, int);
  198. extern int cheeok(int, int);
  199. extern void open_window_CPK(int, TEHAI *);
  200. extern void end_flush_stehai(int);
  201. extern int canckan(TEHAI *,int);
  202. extern void dispose_gind(void);
  203. extern void display_gind(int id);
  204. extern void left_gind(int x);
  205. extern void right_gind(int x);
  206. extern void flush_stehai(int id,int on_off);
  207.  
  208. /*    ÉVè╓ÉöÆΦï`    */
  209. extern int    MenNamePull(char **menName);
  210. extern void    CloseHai(void);
  211. extern void     display_dora(void);
  212. extern void     display_sai(void);
  213. extern void     display_bahyoji(void);
  214. extern void     display_stehai(void);
  215. extern void        display_udora(void);
  216. extern void        disp_naki(void);
  217. extern void     display_eachscr(int num,int sc,int delta,char *name);
  218. extern HBITMAP    StretchBitmap(HBITMAP hBitmap1);
  219. extern void        OpenPut(HDC hdc);
  220. extern void        OpenPut2(HDC hdc);
  221. extern void     OpenDelete(void/*HDC hdc*/);
  222. extern void     OpenLoad(void);
  223. /*extern void     Dfase_put_prof(HDC hDc,int n,int me); */
  224. /*extern void        Dfase_put_kachi(HDC hDc,int n,int me,int No); */
  225. extern void        RecoverPalette(HDC hDc);
  226. extern void        HelpProc(void);
  227.  
  228. extern DWORD    SoundSetUp(void);
  229. extern DWORD    MusicPlay(HWND hn,int musicNo);
  230. extern DWORD    WavePlay(int waveNo);
  231. extern DWORD    MusicClose(void);
  232. extern DWORD    WaveClose(void);
  233. extern DWORD    MusicReplay(HWND hn);
  234. extern void        WaveFunc(int cnd,int flag);
  235. extern void PASCAL NEAR OpenMciFile(HWND hwndDlg,LPSTR lszFile);
  236. void            MenuControl(int group,UINT flag);
  237. void            ClearGomi(int n);
  238.  
  239. #define    get_gind(x)    (gind_no[x]-gind_top[x])
  240.  
  241.  
  242. /*    ========================è∙æ╢òöò¬==========================    */
  243. extern int Ckanflag;
  244. extern BOOLEAN Haiteflag;
  245. man_type men[];
  246. int Display_Option;
  247. extern int bgm_flag,eff_flag;
  248.  
  249. int CurHai;
  250. MEMBER Member[4];
  251. haitype Phai[34] = INITSET;
  252. int Ba_mark;
  253. BOOLEAN Kanflag = FALSE;
  254. BOOLEAN Firstflag = TRUE;
  255. BOOLEAN Speed = 0;
  256. int Jun = 0;
  257. int Teach_mode;
  258. int Kansen_mode;
  259. int Sinan_mode;
  260. int Game_mode;
  261. jmp_buf Jenv;
  262. BOOLEAN Debug_flag = FALSE;
  263. BOOLEAN TestFlag = FALSE;
  264. BOOLEAN Open_mode;
  265. FILE *TestF;
  266.  
  267. int DebugMode = 0;
  268.  
  269. static int Siba;
  270. static int Stick;
  271.  
  272. static haitype Oldhai = nullhai;
  273.  
  274. int NewID = 0;
  275. int OldID = 0;
  276. int start_id = 0;
  277. int ExTopMenu = 0;
  278.  
  279. static int    gSpeed;
  280.  
  281. static int Prw[] = {0,0,0,0,3,2,1,4,0};
  282.  
  283. #define relocate(ID1,ID2) (((ID1) + (3-(ID2))) % 4)
  284.  
  285. enum {
  286.     ryukyoku,
  287.     kan4,
  288.     kyushu,
  289.     ron3,
  290.     kaze4,
  291.     reach4
  292. } Endflag;
  293.  
  294. extern void add_display_dora(int, int);
  295. extern int makedora(void);
  296. extern void put_alltehai(int);
  297. extern void count_alltehai(int);
  298. extern void readythumo(void);
  299. extern void display_init(int,int);
  300. extern void display_hyochar(int, int);
  301. extern void display_ba(int, int);
  302. extern void display_saikoro(int, int, int);
  303. extern void put_thumo(int, int);
  304. extern BOOLEAN Dir_end99(int);
  305. extern enum Cond Dir_thumo(int);
  306. extern void put_reach_stick(int);
  307. extern int Dir_stehai(int);
  308. extern BOOLEAN tempai(TEHAI *);
  309. extern BOOLEAN furiten(TEHAI *);
  310. extern void set_ron_info(TEHAI *);
  311. extern void set_safu_info(int, int);
  312. extern void learn_safu(int);
  313. extern void anime_stehai(int, int, int, BOOLEAN);
  314. extern BOOLEAN Dir_ron(int, int);
  315. extern enum Cond Dir_naki(int, int, int);
  316. extern void anime_akan(int,int);
  317. extern void anime_pkan(int,int);
  318. extern BOOLEAN Dir_chankan(int, int);
  319. extern void anime_mkan(int,int,int);
  320. extern void anime_pon(int,int,int);
  321. extern void anime_chee(int,int);
  322. extern void display_eachscore(int, int, int, char *);
  323. extern int down_eachscore(int);
  324. extern void dispose_eachscore(int);
  325. extern void display_lastscore(int, int, char *);
  326. extern void display_message(char *);
  327. extern void display_kyoku(int, int);
  328. extern void put_haipai(int);
  329. extern void dispose_message(void);
  330. extern void option(void);
  331. extern void learn_yaku(int);
  332. extern void del_reach_stick(int);
  333. extern void anime_ron(int, int, int);
  334. extern void display_uradora(int);
  335. extern int makedummydora(void);
  336. extern int calscr(TEHAI *, int, BOOLEAN);
  337. extern void learn_agari(void);
  338. extern void learn_anpai(void);
  339. extern BOOLEAN nagasi(TEHAI *);
  340. extern void display_nagasi(int);
  341. extern void display_ryukyoku(void);
  342. extern void Ginit(void);
  343. extern int load_all_man(int);
  344. extern int save_all_man(void);
  345. extern int get_topmenu(int);
  346. extern void display_member(void);
  347. extern void put_message(char *);
  348. extern int pick_sinan(int);
  349. extern void input_kan(char *);
  350. extern int change_myname(char *);
  351. extern void init_man(int);
  352. extern void display_all_man2(void);
  353. extern int pick_myname(void);
  354. extern void display_message_xy(char *[], int, int, int, int);
  355. extern int init_member_data(int);
  356. extern int pick_member(int);
  357. extern int trans_member(int);
  358. extern void Gclose(void);
  359. extern char *tozennum(int);
  360. extern int *pick_other(int,int);
  361. extern void open_end_menu(menu *);
  362. extern void set_all_palette(int);
  363.  
  364. /*static int utility(void);    */
  365.  
  366. char END_MSG[] = "ö╝ææ  ÅIù╣";
  367.  
  368.  
  369.  
  370.  
  371. /*=====================================================================
  372.  
  373.     ùvû±üFâüâCâôè╓Éö
  374.  
  375.     ÅæÄ«üFint PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  376.                                 LPSTR lpszCmdLine, int nCmdShow)
  377.  
  378.     èTùvüFwindowsâAâvâèâPü[âVâçâôé╠âüâCâôè╓Éö
  379.  
  380. =======================================================================*/
  381. int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  382.                     LPSTR lpszCmdLine, int nCmdShow)
  383. {
  384.     HWND        hwnd ;
  385.     MSG         msg ;
  386.     WNDCLASS    wndclass ;
  387.     HMENU        hmenu;
  388.     ATOM        regclass;
  389.  
  390.     if (!hPrevInstance) {
  391.         wndclass.style         = CS_HREDRAW|CS_VREDRAW|CS_BYTEALIGNWINDOW;
  392.         wndclass.lpfnWndProc   = WndProc ;
  393.         wndclass.cbClsExtra    = 0 ;
  394.         wndclass.cbWndExtra    = 0 ;
  395.         wndclass.hInstance     = hInstance ;
  396.         wndclass.hIcon         = LoadIcon(hInstance, iconName) ;
  397.         wndclass.hCursor       = /*LoadCursor (NULL, IDC_ARROW)*/ NULL;
  398.         wndclass.hbrBackground = CreateSolidBrush (0x008000L) ;
  399.         wndclass.lpszMenuName  = szAppName ;
  400.         wndclass.lpszClassName = szAppName ;
  401.  
  402.         regclass=RegisterClass (&wndclass) ;
  403.     }
  404.  
  405.     hmenu = LoadMenu(hInstance,szAppName);
  406.  
  407.     hMenu=hmenu;
  408.     hInst = hInstance;
  409.  
  410.     hwnd = CreateWindow (szAppName, "ûâÉ¥ü@òÉæá for WIN  Ver.1.0",
  411.                         WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,
  412.                         CW_USEDEFAULT, CW_USEDEFAULT,
  413.                         540, 400+GetSystemMetrics(SM_CYMENU)+GetSystemMetrics(SM_CYCAPTION),
  414.                         NULL, hmenu, hInstance, NULL) ;
  415.  
  416.     hWnd = hwnd;
  417.  
  418. /*    OpenMciFile(hwnd,lpszCmdLine); */
  419.  
  420.     ShowWindow (hwnd, nCmdShow) ;
  421.     UpdateWindow (hwnd) ;
  422.  
  423.     while (GetMessage (&msg, NULL, 0, 0)) {
  424.         TranslateMessage (&msg) ;
  425.         DispatchMessage (&msg) ;
  426.     }
  427.     return msg.wParam ;
  428. }
  429.  
  430.  
  431.  
  432.  
  433. /*=====================================================================
  434.  
  435.     ùvû±üFâiâLùpâ|âbâvâAâbâvâüâjâàü[ì∞ɼè╓Éö
  436.  
  437.     ÅæÄ«üFstatic void CreatNakiMenu();
  438.  
  439.     èTùvüFÉ╪éΦùúé╡é╜î`Å≤é╠â|âbâvâAâbâvâüâjâàü[é≡ò\Īé╖éΘ
  440.     ü@ü@ü@éaéléoÆúéΦòté»â|âbâvâAâbâv
  441.  
  442. =======================================================================*/
  443. static void    CreateNakiMenu(long lp)
  444. {
  445. int    i;
  446. static int    j;
  447. int    flag=0;
  448. POINT    ptCurrent;
  449. HBITMAP    poolBitmap[6];
  450. HDC        hdcOrg,hdcMem1,hdcMem2;
  451. BITMAP    dBitmap1,dBitmap2;
  452.  
  453.     j=0;
  454.     hdcOrg=GetDC(hWnd);
  455.     for (i=0 ; i<6 ; i++)
  456.         if (nakiMatrix[i]==1)
  457.             flag++;
  458.     if (flag==0)
  459.         return;
  460.     ptCurrent = MAKEPOINT(lp);
  461.     hPopMenu = CreatePopupMenu();
  462.     for (i=0 ; i<6 ; i++) {
  463.         if (nakiMatrix[i]==1) {
  464.             GetObject(usrButton[i], sizeof(BITMAP), (LPSTR)&dBitmap1);
  465.             dBitmap2=dBitmap1;
  466.             hdcMem1 = CreateCompatibleDC(hdcOrg);
  467.             hdcMem2 = CreateCompatibleDC(hdcOrg);
  468.             poolBitmap[j]=CreateBitmapIndirect(&dBitmap2);
  469.             SelectObject(hdcMem1, usrButton[i]);
  470.             SelectObject(hdcMem2, poolBitmap[j]);
  471.             BitBlt(hdcMem2,0,0,dBitmap1.bmWidth, dBitmap1.bmHeight,
  472.                     hdcMem1,0,0,SRCCOPY);
  473.             if (nakiChecker[i]==0x01)
  474.                 AppendMenu(hPopMenu, MF_CHECKED|MF_BITMAP|MF_ENABLED,IDM_PON+i,(LPSTR)(LONG)poolBitmap[j]);
  475.             else
  476.                 AppendMenu(hPopMenu, MF_BITMAP|MF_ENABLED,IDM_PON+i,(LPSTR)(LONG)poolBitmap[j]);
  477.             DeleteDC(hdcMem1);
  478.             DeleteDC(hdcMem2);
  479.             j++;
  480.         }
  481.     }
  482.     ClientToScreen(hWnd, &ptCurrent);
  483.     TrackPopupMenu(hPopMenu, TPM_LEFTALIGN|TPM_RIGHTBUTTON, ptCurrent.x, ptCurrent.y, 0, hWnd, NULL);
  484.     ReleaseDC(hWnd,hdcOrg);
  485.     for (i=0 ; i<flag ; i++)
  486.         DeleteObject(poolBitmap[i]);
  487.     DestroyMenu(hPopMenu);
  488. }
  489.  
  490. void    KillPopMenu(void)
  491. {
  492. ;
  493.  
  494. }
  495.  
  496. /************************************************/
  497. /*                        */
  498. /*        clrippatu            */
  499. /*                        */
  500. /************************************************/
  501.  
  502. static void clrippatu(void)
  503. {
  504.     int i;
  505.  
  506.     Firstflag = FALSE;
  507.     for ( i = 0; i < 4; i++ ) {
  508.     Member[i].tehai.ippatu = FALSE;
  509.     }
  510. }
  511.  
  512. /************************************************/
  513. /*                        */
  514. /*        4 reach                */
  515. /*                        */
  516. /************************************************/
  517.  
  518. static int reach_num(void)
  519. {
  520.     int i,n;
  521.  
  522.     n = 0;
  523.     for ( i = 0; i < 4; i++ ) {
  524.     if ( Member[i].tehai.reach ) {
  525.         ++n;
  526.     }
  527.     }
  528.     return n;
  529. }
  530.  
  531. /************************************************/
  532. /*                        */
  533. /*        4 kan check            */
  534. /*                        */
  535. /************************************************/
  536.  
  537. static int Kancnt;        /* have to set zero */
  538.  
  539. static BOOLEAN is4kan(int id)
  540. {
  541.     static int kanwork[5];
  542.     int i;
  543.  
  544.     kanwork[Kancnt++] = id;
  545.     add_display_dora(makedora(),Kancnt);
  546.     if ( Kancnt == 4 ) {
  547.     for ( i = 0; i < 2; i++ ) {
  548.         if ( kanwork[i] != kanwork[i+1] ) {
  549.         return (TRUE);
  550.         }
  551.     }
  552.     return (FALSE);
  553.     } else if ( Kancnt == 5 ) {
  554.     return (TRUE);
  555.     } else {
  556.     return (FALSE);
  557.     }
  558. }
  559.  
  560. /*
  561. **    âIü[âvâôâéü[âhé╠É╪éΦæ╓éª
  562. */
  563.  
  564. int open_tehai(void)
  565. {
  566.     int i;
  567.  
  568.     Open_mode = !Open_mode;
  569.     for ( i = 0; i < 3; i++ ) {
  570.     Member[i].tehai.open = Open_mode;
  571.     put_alltehai(i);
  572.     }
  573.     return (Open_mode);
  574. }
  575.  
  576. /************************************************/
  577. /*                        */
  578. /*        init                */
  579. /*                        */
  580. /************************************************/
  581.  
  582. void init_top_top(void)
  583. {
  584.     int i;
  585.  
  586.     Teach_mode = FALSE;
  587.     Open_mode = FALSE;
  588.     if ( Kansen_mode ) Teach_mode = TRUE;
  589.     Siba = 0;
  590.     Stick = 0;
  591.     Ba_mark = TON;
  592.     for ( i = 0; i < 4; i++ ) {
  593.     Member[i].score = 2700;
  594.     }
  595. }
  596.  
  597. void init_toplevel(int id)
  598. {
  599.     int i;
  600.  
  601.     Kanflag = FALSE;
  602.     Ckanflag = FALSE;
  603.     Firstflag = TRUE;
  604.     Kancnt = 0;
  605.     memset(Phai,0,sizeof(Phai[0])*KHAI);
  606.     readythumo();
  607.     for ( i = 0; i < 4; i++ ) {
  608. #ifdef DEBUG
  609.     if ( TestFlag && i == 3 ) {
  610.         testpai(&Member[i].tehai);
  611.     } else {
  612.         haipai(&Member[i].tehai);
  613.     }
  614. #else
  615.     haipai(&Member[i].tehai);
  616. #endif
  617.     Member[i].stg = 0;
  618.     Member[i].tehai.kaze = ((4 - id + i) % 4) + TON;
  619.     Member[i].id = i+1;
  620.     Member[i].tehai.open = Open_mode;
  621.     Member[i].learn_yaku = 0;
  622.     if ( i == 3 ) {
  623.         Member[i].tehai.open = TRUE;
  624.         Member[i].id = 0;
  625.     }
  626.     }
  627.     OldID = id;
  628.     NewID = id;
  629. /*    é▒é▒é¬ò\Īòöò¬    */
  630.     display_init(makedora(),doraFlag);
  631.     display_hyochar(Siba,reaStick);
  632.     display_ba(start_id,Ba_mark);
  633.     display_saikoro(id,rand()%6,rand()%6);
  634.     doraFlag=0;
  635. }
  636.  
  637. BOOLEAN end99(TEHAI *tehai)
  638. {
  639.     int i;
  640.     int c = 0;
  641.  
  642.     for ( i = 0; i < KHAI; i++ ) {
  643.     if ( isyao(i) && tehai->tset[i] ) c++;
  644.     }
  645.     if ( c >= 9 ) return (TRUE);
  646.     return (FALSE);
  647. }
  648.  
  649. BOOLEAN is4kaze(void)
  650. {
  651.     int i, h;
  652.  
  653.     if ( !Firstflag ) return (FALSE);
  654.     for ( i = 0; i < 4; i++ ) {
  655.     if ( Member[i].tehai.stecnt != 1 ) return (FALSE);
  656.     }
  657.     h = Member[0].tehai.stehai[0].hai;
  658.     if ( h == Ba_mark ) return (FALSE);
  659.     for ( i = 1; i < 4; i++ ) {
  660.     if ( (int)Member[i].tehai.stehai[0].hai != h ) return (FALSE);
  661.     }
  662.     return (TRUE);
  663. }
  664.  
  665. /************************************************/
  666. /*                        */
  667. /*    êΩï╟                    */
  668. /*                        */
  669. /************************************************/
  670.  
  671. #define opt_num(x) (x % 10 != 0 ? (x/10+1)*10 : x)
  672.  
  673. /*
  674. **    ô_Éöé╠æ¥î╕é≡âZâbâgé╖éΘ
  675. */
  676.  
  677. static void set_score(int sc)
  678. {
  679.     int i;
  680.     int sc1, sc2, sc3;
  681.  
  682.     if ( NewID == OldID ) {            /* âcâé     */
  683.     if ( Member[NewID].tehai.kaze == TON ) {
  684.         sc1 = -opt_num(sc/3)-Siba*10;
  685.         sc3 = opt_num(sc/3)*3+Siba*30+Stick*100;
  686.     } else {
  687.         sc1 = -opt_num(sc/4)-Siba*10;
  688.         sc2 = -opt_num(sc/2)-Siba*10;
  689.         sc3 = opt_num(sc/4)*2+opt_num(sc/2)+Siba*30+Stick*100;
  690.     }
  691.     for ( i = 0; i < 4; i++ ) {
  692.         if ( i == NewID ) {            /* Åπé¬é┴é╜Él    */
  693.         Member[i].delta = sc3;
  694.         } else {
  695.         if ( Member[i].tehai.kaze == TON ) {
  696.             Member[i].delta = sc2;
  697.         } else {
  698.             Member[i].delta = sc1;
  699.         }
  700.         }
  701.     }
  702.     } else {
  703.     for ( i = 0; i < 4; i++ ) {
  704.         Member[i].delta = 0;
  705.     }
  706.     Member[NewID].delta = sc+Siba*30+Stick*100;
  707.     Member[OldID].delta = -sc-Siba*30;
  708.     }
  709. }
  710.  
  711. /*
  712. **    ù¼ï╟é╠ô_Éöé╠îvÄZ
  713. */
  714.  
  715. static void set_ryukyoku_score(void)
  716. {
  717.     int i;
  718.     int c = 0;
  719.     int f[4];
  720.     int sc1, sc2;
  721.  
  722.     for ( i = 0; i < 4; i++ ) {
  723.     Member[i].delta = 0;
  724.     f[i] = tempai(&Member[i].tehai);
  725.     if ( f[i] ) {
  726.         c++;
  727.         Member[i].tehai.open = TRUE;
  728.         put_alltehai(i);
  729.     }
  730.     }
  731.     if ( (c != 0) && (c != 4) ) {
  732.     sc1 = 300/c;
  733.     sc2 = -300/(4-c);
  734.     for ( i = 0; i < 4; i++ ) {
  735.         if ( f[i] ) {
  736.         Member[i].delta = sc1;
  737.         } else {
  738.         Member[i].delta = sc2;
  739.         }
  740.     }
  741.     }
  742. }
  743.  
  744. /*
  745. **    ô_Éöé╠ò\Īé╞ë┴ÄZ
  746. */
  747.  
  748. static void display_score(void)
  749. {
  750. /*    int i;
  751.     int flag[4];
  752.     int all = FALSE;
  753.  
  754.     for ( i = 0; i < 4; i++ ) {
  755.     flag[i] = FALSE;
  756.     if ( Member[i].delta != 0 ) {
  757.         flag[i] = TRUE;
  758.         all = TRUE;
  759.         display_eachscore(i,Member[i].score,Member[i].delta,men[Member[i].men].name);
  760.         Member[i].score += Member[i].delta;
  761.     }
  762.     }
  763.     Wait(all?1000:1500);
  764.     while ( all ) {
  765.     all = FALSE;
  766.     for ( i = 0; i < 4; i++ ) {
  767.         if ( flag[i] ) {
  768.         flag[i] = (down_eachscore(i) != 0 ? TRUE : FALSE);
  769.         }
  770.         all |= flag[i];
  771.     }
  772.     }
  773.     Wait(1000);
  774.     for ( i = 0; i < 4; i++ ) {
  775.     if ( Member[i].delta == 0 ) {
  776.         display_eachscore(i,Member[i].score,0,men[Member[i].men].name);
  777.     }
  778.     }
  779.     Wait(2500);
  780.     for ( i = 0; i < 4; i++ ) {
  781.     dispose_eachscore(i);
  782.     }
  783.     */
  784. }
  785.  
  786. void display_each_score(void)
  787. {
  788.     int i;
  789.  
  790.     for ( i = 0; i < 4; i++ ) {
  791.     display_eachscore(i,Member[i].score,0,men[Member[i].men].name);
  792.     }
  793. /*    while (  get_stick() == 0 )*/
  794.     ;
  795.     for ( i = 0; i < 4; i++ ) {
  796.     dispose_eachscore(i);
  797.     }
  798. }
  799.  
  800. static int last_sc[4];
  801.  
  802. static void display_all_lastscore(void)
  803. {
  804.     int i, j, a;
  805.     int maxi = 0;
  806.     int max_sc = MININT;
  807.  
  808.     for ( i = 0; i < 4; i++ ) {
  809.     j = (start_id+i) % 4;
  810.     a = Member[j].score;
  811.     if ( max_sc < a ) {
  812.         max_sc = a;
  813.         maxi = j;
  814.     }
  815.     a /= 10;
  816.     if ( a % 10 <= 5 ) {
  817.         a /= 10;
  818.     } else {
  819.         a = a/10+1;
  820.     }
  821.     last_sc[j] = a-30;
  822.     }
  823.     a = 0;
  824.     for ( i = 0; i < 4; i++ ) {
  825.     if ( i != maxi ) a -= last_sc[i];
  826.     }
  827.     last_sc[maxi] = a;
  828. /*    for ( i = 0; i < 4; i++ ) {
  829.     display_lastscore(i,last_sc[i],men[Member[i].men].name);
  830.     } */
  831. }
  832.  
  833. #if 0
  834. static int Order_lisr[4];
  835. static void get_junban(void)
  836. {
  837.     int i, j, c, t, t2;
  838.  
  839.     for ( i = 0; i < 4; i++ ) {
  840.         t = (start_id +i ) % 4;
  841.         c = 0;
  842.         for ( j = 0; j < 4; j++ ) {
  843.             t2 = (start_id + j) % 4;
  844.             if ( (last_sc[t2] > last_sc[t])
  845.                 || ((last_sc[t2] == last_sc[t]) && (j < i)) ) {
  846.                 c++;
  847.             }
  848.         }
  849.         Order_list[t] = c;
  850.     }
  851. }
  852. #endif
  853.  
  854. static int get_topman(void)
  855. {
  856.     int i, j, a;
  857.     int maxi = 0;
  858.     int max_sc = MININT;
  859.  
  860.     for ( i = 0; i < 4; i++ ) {
  861.     j = (start_id+i) % 4;
  862.     a = Member[j].score;
  863.     if ( max_sc < a ) {
  864.         max_sc = a;
  865.         maxi = j;
  866.     }
  867.     }
  868.     return (Member[maxi].men);
  869. }
  870.  
  871. void    DestroyMenuCheck(void)
  872. {
  873. int    i;
  874.  
  875.     hSubMenu=GetSubMenu(hMenu,2);
  876.     for (i=IDM_PON ; i<IDM_TUM+1 ; i++)
  877.         CheckMenuItem(hSubMenu, i,MF_BYCOMMAND|MF_UNCHECKED);
  878. }
  879.  
  880.  
  881. void    Display_reach_b(void)
  882. {
  883. int    i;
  884.  
  885.     for (i=0 ; i<4 ; i++) {
  886.         if (reachMatrix[i]==1)
  887.             put_reach_stick(i);
  888.     }
  889. }
  890. /*
  891. **    êΩï╟
  892. */
  893.  
  894. /* ÿAææüFéöéÆéòéàü@é╗é╠æ╝üFéåéüéîéôéà */
  895. /*
  896. **    ö╝ï╟é╠Åêù¥
  897. */
  898.  
  899. /* =====WM_PAINT========================================================*/
  900.  
  901. static void hanchan(HWND hWnd,int wm,int tr,int pc)
  902. {
  903. static TEHAI *tehai_u;
  904. static enum Cond a, b;
  905. static enum Cond cnd_dl1;
  906. static BOOLEAN    r;
  907. static BOOLEAN    dl5;
  908. static int        c;
  909. static int        dla, dlb, dlc;
  910. static int        reach_mark;
  911. extern int        Ckanflag;
  912. static enum Cond dl6;
  913. int    i;
  914.  
  915. START:
  916. /* é╖é┴ö≥é╬é╖ */
  917.     eFlag.act=AC_DEFAULT;
  918.  
  919.     switch (jumpFlag)
  920.     {
  921.         case J_ASK_SUB_RTK:
  922.             goto ASK_SUB_RTK;
  923.         case J_ASK_SUB_CPKR1:
  924.             goto ASK_SUB_CPKR1;
  925.         case J_ASK_SUB_CPKR2:
  926.             goto ASK_SUB_CPKR2;
  927.         case J_USR_STEHAI:
  928.             goto USR_STEHAI;
  929.  
  930.         case J_AS_RTK_KAN:
  931.             goto ASK_SUB_RTK_KANSEN;
  932.         case J_AS_CPKR1_KAN:
  933.             goto ASK_SUB_CPKR1_KANSEN;
  934.         case J_USTEHAI_KAN:
  935.             goto USR_STEHAI_KANSEN;
  936.  
  937.         case J_AS_RTK_COM:
  938.             goto ASK_SUB_RTK_COMP;
  939.         case J_AS_CPKR1_COM:
  940.             goto ASK_SUB_CPKR1_COMP;
  941.         case J_USTEHAI_COM:
  942.             goto USR_STEHAI_COMP;
  943.     }
  944.  
  945.     if (eFlag.tern == IC_KYOKUEND) {
  946.         tr = IC_HANST;
  947.         eFlag.tern = IC_HANST;
  948.         doraFlag=1;
  949.     }
  950.  
  951. /*    ö╝ææôαÅëè·ë╗ */
  952. /* ö╝ææôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  953. /* êΩï╟ôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  954.     if (wm==WM_PAINT&&tr==IC_PLAYERSEL) {
  955.         srand((unsigned int)time(NULL));
  956.         init_top_top();
  957.         reaStick=0;
  958.         tonke=0;
  959.         start_id = rand() % 4;
  960.         eFlag.tern=IC_HANST;
  961.         tr=IC_HANST;
  962.         memset(nakiChecker,0x00,12);
  963.         reach_mark=0;
  964.     }
  965.  
  966. /*    êΩï╟ôαÅëè·ë╗    */
  967. /* êΩï╟ôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  968.     if (tr==IC_HANST) {
  969.         condition=COND_THUMO;
  970.         na=0;
  971.         ton_id = (start_id+tonke) % 4;
  972.         init_toplevel(ton_id);
  973.         xsClip=base_x[SHITA];
  974.         ysClip=base_y[SHITA]-32;
  975.         xeClip=base_x[SHITA]+hai_w[SHITA]*14;
  976.         yeClip=base_y[SHITA]-32+hai_h[SHITA];
  977.     }
  978.  
  979. /*    é▒éΩé═âüâbâZü[âWâ{âbâNâXé┼é╖éΘ */
  980. /* êΩï╟ôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  981.     if (tr==IC_HANST) {
  982.         kyokuMessage=ba_msg[Ba_mark-TON][tonke];
  983.         DialogBox(hDlgInstance, "KyokuDisp", hWnd, (DLGPROC)lpfnDispDlgProc);
  984.         reaSteFlag=0;
  985.         for (i=0 ; i<4 ; i++)
  986.             reachMatrix[i]=0;
  987.     }
  988.  
  989. /*    özövòöò¬    */
  990. /* êΩï╟ôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  991.     if (tr==IC_HANST) {
  992.         for ( dl1 = 0; dl1 < 4; dl1++ ) {
  993.             put_haipai(dl1);                    /* graphics */
  994.         }
  995.         for ( dl1 = 0; dl1 < 4; dl1++ ) {
  996.             Member[dl1].tehai.top = haisort(Member[dl1].tehai.top);
  997.             put_alltehai(dl1);                /* graphics */
  998.         }
  999.         eFlag.tern=IC_KYOKU;
  1000.         tr=IC_KYOKU;
  1001.     }
  1002.  
  1003. /*    delay(1000);    */
  1004. /*    dispose_message();    */
  1005.  
  1006. /*    =========êΩï╟é¬ÅIéφéΘé▄é┼îJéΦò╘é╖éτé╡éó(^^;========    */
  1007.  
  1008.     if (eFlag.tern==IC_KYOKU) {
  1009. /*    âEâGâCâgôⁿéΩéΘé╚éτé▒é▒    */
  1010. /*        ûΓæΦé═é▒é▒(^^; */
  1011. /*    êΩÄΦé╠Åêù¥    */
  1012.         tehai = &Member[NewID].tehai;
  1013.         if ( tehai->stecnt != 0 ) {
  1014.             Firstflag = FALSE;
  1015.         }
  1016.         switch ( condition ) {
  1017.             case COND_THUMO:
  1018.                 if ( Haiteflag ) {
  1019.                     Endflag = ryukyoku;
  1020.                     condition = COND_END;
  1021.                     break;
  1022.                 }
  1023.                 wh = thumo();
  1024.                 CurHai = wh;
  1025.                 Member[NewID].work = wh;
  1026.                 haiadd(tehai,CurHai);
  1027. /*                âcâéë╣ôⁿéΩéΘé╚éτé▒é▒    */
  1028.                 put_thumo(NewID,wh);            /* graphics */
  1029.  
  1030. /*                é▒é▒é═ùvé═TRUEüiïπÄφïπövù¼é╡üjé⌐FALSEüiù¼é│é╚éóüj
  1031.                 é¬ò╘é┴é─é¡éΘé╛é»üBâRâôâsâàü[â^é═òKé╕ù¼é╖ */
  1032.                 if (Firstflag) {
  1033.                     if (end99(tehai)) {
  1034.                         if ( Kansen_mode || (NewID != USRNO) ) {
  1035.                                 dir99=TRUE;
  1036.                             } else {
  1037.                             DialogBox(hDlgInstance, "Hai99", hWnd, (DLGPROC)lpfnHa99DlgProc);
  1038.                         }
  1039.                     }
  1040.                     if (dir99==TRUE) {
  1041.                         Endflag = kyushu;
  1042.                         condition = COND_END;
  1043.                         dir99 = FALSE;
  1044.                         break;
  1045.                     }
  1046.                 }
  1047.  
  1048. /*                ôⁿù═òöò¬é╠éáéΘé╞é▒éδéτé╡éó(^^;    */
  1049.                 if ( Kansen_mode ) {
  1050.                     jumpFlag=J_AS_RTK_KAN;
  1051.                     eFlag.act=AC_DEVIDE;
  1052.                     return;
  1053. ASK_SUB_RTK_KANSEN:
  1054.                     jumpFlag=J_DEFAULT;                    
  1055.                     dirThumo = Com_thumo(NewID);
  1056.                     WaveFunc(dirThumo,1);
  1057.                 } else if ( NewID == USRNO ) {
  1058. /*    ====================é▒éΩé≡é╚é±é╞é⌐é╖éΘ===================    */
  1059.                     cnd = COND_STEHAI;
  1060.                     tehai_u = &Member[NewID].tehai;
  1061.                     if ( canagari(&Member[NewID].tehai,-1)
  1062.                         && (getcalscr(&Member[NewID].tehai,Member[NewID].work,FALSE) != 0) ) {
  1063.                         thumo_flag = TRUE;
  1064.                         Member[NewID].tehai.furiten = TRUE;
  1065.                     } else {
  1066.                         thumo_flag = FALSE;
  1067.                     }
  1068.                     tkan_flag = canakan(tehai_u);
  1069.                     reach_flag = canreach(&Member[NewID].tehai);
  1070.                     Hcnd = COND_STEHAI;
  1071.                     Co = Member[NewID].tehai.count-1;
  1072.                     if ( !Member[NewID].tehai.reach ) {
  1073.                         a = (enum Cond)siko(NewID);    /* ÄwĪâéü[âhüH */
  1074.                     } else {
  1075.                         a = (enum Cond)DO_STEHAI;
  1076.                     }
  1077.                     if ( Sinan_mode || Teach_mode || Kansen_mode ) {
  1078.                         if ( a == DO_ANKAN ) {
  1079.                             Hcnd = COND_TKAN;
  1080.                             for ( dl4 = 0; dl4 < tkan_flag; dl4++ ) {
  1081.                                 if ( KanHai == Kanlist[dl4] ) {
  1082.                                     Hin = dl4;
  1083.                                     break;
  1084.                                 }
  1085.                             }
  1086.                         }
  1087.                         if ( a == DO_REACH ) Hcnd = COND_REACH;
  1088.                         if ( thumo_flag ) Hcnd = COND_RON;
  1089.                         if ( thumo_flag || Member[NewID].tehai.reach ) {
  1090.                             Hp = Co;
  1091.                         } else {
  1092.                             Hp = haicount(Member[NewID].tehai.top,SteHai)-1;
  1093.                         }
  1094.                     } else {                    /* âmü[â}âïâéü[âh */
  1095.                         Hp = Co;
  1096.                     }
  1097.                     if ( !Kansen_mode ) {            /* è╧Éφâéü[âh */
  1098. /*                        indicate_hai(Hp);*/
  1099.                         if ( tkan_flag || reach_flag || thumo_flag ) {
  1100. /* ================ask_RTK================= */
  1101.                             open_window_RTK(&Member[NewID].tehai);
  1102.                             r = (Member[NewID].tehai.reach && !Member[NewID].tehai.ippatu);
  1103.                             eFlag.act=AC_MOUSE;
  1104. /* ================ask_sub_RTK================= */
  1105. /* é▒é▒é¬éªéτéóûΓæΦ */
  1106. /*                                âTâuâüâjâàü[é╠âAâNâeâBâuë╗    */
  1107.                                 Co = Member[NewID].tehai.count-1;
  1108.                                 memset(nakiMatrix,0x00,12);
  1109.                                 memset(nakiChecker,0x00,12);
  1110.                                 for (dlc=0 ; RTK[dlc]!=COND_STEHAI ; dlc++) {
  1111.                                     hSubMenu=GetSubMenu(hMenu,2);
  1112.                                     switch (RTK[dlc]) {
  1113.                                         case COND_RON:
  1114.                                             EnableMenuItem(hSubMenu, IDM_TUM, MF_ENABLED);
  1115.                                             nakiMatrix[5]=1;
  1116.                                             break;
  1117.                                         case COND_REACH:
  1118.                                             EnableMenuItem(hSubMenu, IDM_REA, MF_ENABLED);
  1119.                                             nakiMatrix[3]=1;
  1120.                                             break;
  1121.                                         case COND_TKAN:
  1122.                                             EnableMenuItem(hSubMenu, IDM_KAN, MF_ENABLED);
  1123.                                             nakiMatrix[2]=1;
  1124.                                             break;
  1125.                                     }
  1126.                                 }
  1127.  
  1128. /*                                é╖é┴ö≥é╬é╡òzÉ╬    */
  1129.                                 if (eFlag.act==AC_MOUSE) {
  1130.                                     jumpFlag=J_ASK_SUB_RTK;
  1131. /*                                    SetCursor(winCursor[1]); */
  1132.                                     count_alltehai(NewID);
  1133. /*                                    indicate_hai(Hp);  */
  1134.                                     return;
  1135.                                 }
  1136. ASK_SUB_RTK:
  1137. /*                                ì─ôxâTâuâüâjâàü[é≡âtâèü[âY    */
  1138.  
  1139.                                 jumpFlag=0;
  1140.                                 memset(nakiMatrix,0x00,12);
  1141.                                 memset(nakiChecker,0x00,12);
  1142.                                 MenuControl(2, MF_GRAYED);
  1143.                                 DestroyMenuCheck();
  1144.                                 cnd=RTK[RTK_point];
  1145. /*    ùúÆEÅ≡îÅü@üFâèâ^ü[âôé¬ëƒé│éΩéΘé▄é┼
  1146.     ùúÆEÄ₧ò╧ë╗üFcndé╔RTKözù±é╠ë╜é¬æIæ≡é│éΩé╜é⌐é≡ê┌é╖
  1147.                 ê╚ì~üAcnd é╠Ælé┼ö╗ÆΦé≡ìséñ    */
  1148. /* ================ask_sub_RTK================= */
  1149.  
  1150. /*    âEâCâôâhâEÅ┴ïÄ                deactive(USR_W);    */
  1151. /* ================ask_RTK================= */
  1152.                         }
  1153.                         if ( cnd == COND_TKAN ) {
  1154.                             Member[NewID].work = Kanlist[get_gind(RTK_point)];
  1155.                         }
  1156.                         if ( !Sinan_mode && !Member[NewID].tehai.reach ) {
  1157.                             switch ( cnd ) {            /* Ä└ìsé│éΩéΘéαé╠é≡ïüé▀éΘ */
  1158.                                 case COND_TKAN:
  1159.                                     b = DO_ANKAN;
  1160.                                     break;
  1161.                                 case COND_REACH:
  1162.                                     b = DO_REACH;
  1163.                                     break;
  1164.                                 case COND_STEHAI:
  1165.                                     b = DO_STEHAI;
  1166.                                     break;
  1167.                                 case COND_RON:
  1168.                                     b = DO_RON;
  1169.                                     break;
  1170.                             }
  1171.                             learn_naki(a,b);
  1172.                             if ( Member[NewID].tehai.stecnt < 4 ) {
  1173.                                 learn_yaku(0);
  1174.                             } else {
  1175.                                 learn_yaku(1);
  1176.                             }
  1177.                         }
  1178.                     } else {
  1179.                         cnd = Hcnd;
  1180.                         if ( cnd == COND_TKAN ) Member[NewID].work = KanHai;
  1181.                     }
  1182.                     if ( (cnd == COND_REACH) && !canreach2(tehai_u,checkhai(tehai_u,Hp)) ) {
  1183.                         cnd = COND_STEHAI;
  1184.                     }
  1185.                     USR_stehai = Hp;
  1186.                     dirThumo=cnd;
  1187. /*    ====================é▒éΩé≡é╚é±é╞é⌐é╖éΘ===================    */
  1188.                 } else {
  1189.                     jumpFlag=J_AS_RTK_COM;
  1190.                     eFlag.act=AC_DEVIDE;
  1191.                     return;
  1192. ASK_SUB_RTK_COMP:
  1193.                     jumpFlag=J_DEFAULT;                    
  1194.                     dirThumo = Com_thumo(NewID);
  1195.                 }
  1196.  
  1197. /*                ôⁿù═îïë╩é╠ö╗ÆΦ    */
  1198.                 switch (dirThumo) {
  1199. /*                    Ä╠övé╡é╜é╞é½    */
  1200.                     case COND_STEHAI:
  1201.                         Kanflag = FALSE;
  1202.                         tehai->ippatu = FALSE;
  1203.                         condition = COND_STEHAI;
  1204. /*                        if ( NewID == USRNO )
  1205.                             reach_mark=1;
  1206. */
  1207.                         break;
  1208. /*                    âèü[â`é╡é─Ä╠övé╡é╜é╞é½    */
  1209.                     case COND_REACH:
  1210.                         set_reach(tehai);
  1211.                         put_reach_stick(NewID);            /* graphics */
  1212.                         Stick++;
  1213.                         Member[NewID].score -= 100;
  1214.                         Kanflag = FALSE;
  1215.                         condition = COND_STEHAI;
  1216.                         if (NewID==3)
  1217.                             reaSteFlag++;
  1218.                         if ( NewID == USRNO )
  1219.                             reach_mark=1;
  1220.                         reachMatrix[NewID]=1;
  1221.                         WaveFunc(dirThumo,1);
  1222.                         break;
  1223. /*                    âcâéé┴é╜é╞é½    */
  1224.                     case COND_RON:
  1225.                         Oldhai = (haitype)wh;
  1226.                         condition = COND_RON;
  1227.                         if ( NewID == USRNO )
  1228.                             reach_mark=1;
  1229.  
  1230.                         WaveFunc(dirThumo,1);
  1231.                         break;
  1232. /*                    ₧╚é╡é╜é╞é½    */
  1233.                     case COND_TKAN:
  1234.                         Kanflag = FALSE;
  1235.                         tehai->ippatu = FALSE;
  1236.                         condition = COND_TKAN;
  1237.                         if ( NewID == USRNO )
  1238.                             reach_mark=1;
  1239.  
  1240.                         WaveFunc(dirThumo,1);
  1241.                         break;
  1242. /*                    é╖éΘé▒é╞é¬é╚éóé╞é½    */
  1243.                     default:
  1244.                         condition = COND_END;
  1245.                 }
  1246.                 break;
  1247.             case COND_STEHAI:
  1248. /* ===============Dir_stehai============= */
  1249.                 if ( Kansen_mode ) {
  1250.                     jumpFlag=J_USTEHAI_KAN;
  1251.                     eFlag.act=AC_DEVIDE;
  1252.                     return;
  1253. USR_STEHAI_KANSEN:
  1254.                     jumpFlag=J_DEFAULT;                    
  1255.                     dl2=Com_stehai(NewID);
  1256.                 } else if ( NewID == USRNO ) {
  1257. /* =====================Usr_stehai======================= */
  1258.                     eFlag.act=AC_MOUSE;
  1259.                     Co = Member[NewID].tehai.count-1;
  1260.                     if ( USR_stehai >= 0 ) {
  1261.                         Hp = USR_stehai;
  1262.                         USR_stehai=-1;
  1263.                     } else {                    /* û┬é½é⌐éτé½é╜ÅΩìç */
  1264.                         if ( Sinan_mode || Teach_mode || Kansen_mode ) {    /* ÄwĪâéü[âh */
  1265.                             Hp = haicount(Member[NewID].tehai.top,siko2(NewID))-1;
  1266.                         } else {
  1267.                             Hp = Co;
  1268.                         }
  1269.                     }
  1270.                     if (eFlag.act==AC_MOUSE&&reach_mark==0) {
  1271.                         jumpFlag=J_USR_STEHAI;
  1272. /*                        SetCursor(winCursor[1]);  */
  1273.                         MenuControl(2, MF_GRAYED);
  1274.                         count_alltehai(NewID);
  1275.                         indicate_hai(Hp);
  1276.                         return;
  1277.                     }
  1278. USR_STEHAI:
  1279.                     if (reach_mark!=0)
  1280.                         reach_mark=0;
  1281. /*                    SetCursor(winCursor[0]); */
  1282.                     jumpFlag=0;
  1283.                     unindicate_hai(Hp);
  1284.                     DestroyMenuCheck();
  1285.                     dl2=Hp+1;
  1286. /* =====================Usr_stehai======================= */
  1287.                 } else {
  1288.                     jumpFlag=J_USTEHAI_COM;
  1289.                     eFlag.act=AC_DEVIDE;
  1290.                     return;
  1291. USR_STEHAI_COMP:
  1292.                     jumpFlag=J_DEFAULT;                    
  1293.                     dl2=Com_stehai(NewID);
  1294.                 }
  1295. /* ===============Dir_stehai============= */
  1296.                 hai = haidel(tehai,dl2);
  1297.                 if ( (!tehai->reach || tehai->ippatu) && tempai(tehai) ) {
  1298.                     tehai->furiten = furiten(tehai);
  1299.                 }
  1300.                 set_ron_info(tehai);
  1301.                 set_safu_info(NewID,hai);
  1302.                 if ( (NewID == 3) && !tehai->reach && !Sinan_mode && !Kansen_mode ) {
  1303.                     learn_safu(hai);
  1304.                 }
  1305.                 anime_stehai(NewID,dl2,hai,(tehai->ippatu && tehai->reach));
  1306.                                 /* graphics */
  1307.                 OldID = NewID;
  1308.                 prwcnt = 0;
  1309.                 for ( dl3 = 1; dl3 < 4; dl3++ ) {            /* âìâôé┼é½éΘ */
  1310.                     if (Dir_ron((NewID+dl3)%4,hai)) {
  1311.                         break;
  1312.                     }
  1313.                 }
  1314.                 if ( (dl3 < 4) && ((NewID+dl3)%4 != 3) ) {
  1315.                     Oldhai = (haitype)hai;
  1316.                     nakimark(tehai);
  1317.                     NewID = (NewID+dl3)%4;
  1318.                     condition = COND_RON;
  1319.                     WaveFunc(condition,0);
  1320.                     break;
  1321.                 }
  1322.                 for ( dl3 = 1; dl3 < 4; dl3++ ) {
  1323. /* ==================Dir_naki================= */
  1324.                     if ( Kansen_mode ) {
  1325.                         jumpFlag=J_AS_CPKR1_KAN;
  1326.                         eFlag.act=AC_DEVIDE;
  1327.                         return;
  1328. ASK_SUB_CPKR1_KANSEN:
  1329.                         jumpFlag=J_DEFAULT;                    
  1330.                         work = Com_naki((NewID+dl3)%4,NewID,hai);
  1331.                     } else if ( (NewID+dl3)%4 == USRNO ) {
  1332. /* =====================Usr_naki==================== */
  1333.                         USR_stehai = -1;
  1334.                         pon_flag = FALSE;
  1335.                         kan_flag = FALSE;
  1336.                         chee_flag = FALSE;
  1337.                         tehai = &Member[(NewID+dl3)%4].tehai;
  1338.                         if ( !tehai->reach && !Haiteflag ) {
  1339.                             pon_flag = canpon(tehai,hai);
  1340.                             kan_flag = canmkan(tehai,hai);
  1341.                             if ( (((NewID+1) % 4) == (NewID+dl3)%4) ) {
  1342.                                 chee_in = canchee(tehai,hai);
  1343.                                 if ( chee_in != 0 ) {
  1344.                                     chee_flag = TRUE;
  1345.                                 }
  1346.                             }
  1347.                         }
  1348.                         ron_flag = FALSE;
  1349.                         if ( !tehai->furiten && canagari(tehai,hai) ) {
  1350.                             tehai->furiten = TRUE;
  1351.                             if ( getcalscr(tehai,hai,TRUE) != 0 ) {
  1352.                                 ron_flag = TRUE;
  1353.                             }
  1354.                         }
  1355.                         init_top_eval((NewID+dl3)%4);
  1356.                         Hcnd = COND_THUMO;
  1357.                         if ( pon_flag && ponok((NewID+dl3)%4,hai) ) Hcnd = COND_PON;
  1358.                         if ( kan_flag && kanok((NewID+dl3)%4,hai) ) Hcnd = COND_MKAN;
  1359.                         if ( chee_flag ) {
  1360.                             Hin = cheeok((NewID+dl3)%4,hai);
  1361.                             if ( Hin ) Hcnd = COND_CHEE;
  1362.                         }
  1363.                         if ( ron_flag ) Hcnd = COND_RON;
  1364.                         switch ( Hcnd ) {                /* ÄwĪé│éΩéΘìsô« */
  1365.                             case COND_PON:
  1366.                                 dla = DO_PON;
  1367.                                 break;
  1368.                             case COND_CHEE:
  1369.                                 dla = DO_CHEE;
  1370.                                 break;
  1371.                             case COND_MKAN:
  1372.                                 dla = DO_MKAN;
  1373.                                 break;
  1374.                             case COND_THUMO:
  1375.                                 dla = DO_STEHAI;
  1376.                                 break;
  1377.                             case COND_RON:
  1378.                                 dla = DO_RON;
  1379.                                 break;
  1380.                         }
  1381.                         if ( !(Sinan_mode || Kansen_mode || Teach_mode) ) Hcnd = COND_THUMO;
  1382.                         if ( pon_flag || kan_flag || chee_flag || ron_flag ) {
  1383. /* ===================================ask_CPKR=========================*/
  1384.                             flush_stehai(NewID,0);
  1385.                             open_window_CPK(hai,tehai);
  1386.                             eFlag.act=AC_MOUSE;
  1387. /* ===================================ask_sub_CPKR=====================*/
  1388.                             Co = Member[NewID].tehai.count-1;
  1389.                             memset(nakiMatrix,0x00,12);
  1390.                             memset(nakiChecker,0x00,12);
  1391.                             for (dlc=0 ; dlc<5 ; dlc++) {
  1392.                                 switch (CPKR[dlc]) {
  1393.                                     case COND_PON:
  1394.                                         nakiMatrix[0]=1;
  1395.                                         EnableMenuItem(hSubMenu, IDM_PON, MF_ENABLED);
  1396.                                         break;
  1397.                                     case COND_CHEE:
  1398.                                         EnableMenuItem(hSubMenu, IDM_CHI, MF_ENABLED);
  1399.                                         nakiMatrix[1]=1;
  1400.                                         break;
  1401.                                     case COND_MKAN:
  1402.                                         EnableMenuItem(hSubMenu, IDM_KAN, MF_ENABLED);
  1403.                                         nakiMatrix[2]=1;
  1404.                                         break;
  1405.                                     case COND_RON:
  1406.                                         EnableMenuItem(hSubMenu, IDM_RON, MF_ENABLED);
  1407.                                         nakiMatrix[4]=1;
  1408.                                         break;
  1409.                                 }
  1410.                             }
  1411.                             if (eFlag.act==AC_MOUSE) {
  1412.                                 jumpFlag=J_ASK_SUB_CPKR1;
  1413.                                 count_alltehai(NewID);
  1414.                                 return;
  1415.                             }
  1416.  
  1417. ASK_SUB_CPKR1:
  1418. /*                            âTâuâüâjâàü[é╠âtâèü[âY    */
  1419.                             jumpFlag=0;
  1420.                             memset(nakiMatrix,0x00,12);
  1421.                             memset(nakiChecker,0x00,12);
  1422.                             DestroyMenuCheck();
  1423.                             MenuControl(2, MF_GRAYED);
  1424.                             cnd_dl1 = CPKR[CPK_point];
  1425.                             flush_stehai(NewID,1);
  1426.  
  1427. /*    ùúÆEÅ≡îÅü@üFâèâ^ü[âôé¬ëƒé│éΩéΘé▄é┼
  1428.     ùúÆEÄ₧ò╧ë╗üFcnd_dl1é╔CPRKözù±é╠ë╜é¬æIæ≡é│éΩé╜é⌐é≡ê┌é╖
  1429.                 ê╚ì~üAcnd_dl1 é╠Ælé┼ö╗ÆΦé≡ìséñ*/
  1430. /* ===================================ask_sub_CPKR=====================*/
  1431.                             if ( NewID >= 0 ) end_flush_stehai(NewID);
  1432.                             if ( cnd_dl1 == COND_CHEE ) Member[(NewID+dl3)%4].work = chee_work[get_gind(CPK_point)];
  1433. /* ===================================ask_CPKR=========================*/
  1434.                             if ( (cnd_dl1 == COND_CHEE) || (cnd_dl1 == COND_PON) ) Hp = tehai->count-3;
  1435.                         } else {
  1436.                             cnd_dl1 = COND_THUMO;
  1437.                         }
  1438.                         switch ( cnd_dl1 ) {            /* Ä└ìsé│éΩéΘìsô« */
  1439.                             case COND_PON:
  1440.                                 dlb = DO_PON;
  1441.                                 break;
  1442.                             case COND_CHEE:
  1443.                                 dlb = DO_CHEE;
  1444.                                 break;
  1445.                             case COND_MKAN:
  1446.                                 dlb = DO_MKAN;
  1447.                                 break;
  1448.                             case COND_THUMO:
  1449.                                 dlb = DO_STEHAI;
  1450.                                 break;
  1451.                             case COND_RON:
  1452.                                 dlb = DO_RON;
  1453.                                 break;
  1454.                         }
  1455.                         if ( !Sinan_mode ) learn_naki(dla,dlb);
  1456.                         work=cnd_dl1;
  1457. /* =====================Usr_naki==================== */
  1458.                     } else {
  1459.                         jumpFlag=J_AS_CPKR1_COM;
  1460.                         eFlag.act=AC_DEVIDE;
  1461.                         return;
  1462. ASK_SUB_CPKR1_COMP:
  1463.                         jumpFlag=J_DEFAULT;                    
  1464.                         work = Com_naki((NewID+dl3)%4,NewID,hai);
  1465.                     }
  1466.                     WaveFunc(work,0);
  1467. /* ==================Dir_naki================= */
  1468.                     if ( Prw[work] > prwcnt ) {
  1469.                         workID = (NewID + dl3) % 4;
  1470.                         prwcnt = Prw[work];
  1471.                         workp = work;
  1472.                     }
  1473.                 }
  1474.                 if ( prwcnt == 0 ) {
  1475.                     OldID = (NewID+1) % 4;
  1476.                     NewID = OldID;
  1477.                     condition = COND_THUMO;
  1478.                     break;
  1479.                 }
  1480.                 Oldhai = (haitype)hai;
  1481.                 nakimark(tehai);
  1482.                 NewID = workID;
  1483. /*                if ( workp == COND_RON ) play_ron(); */
  1484.                 condition = workp;
  1485.                 break;
  1486.             case COND_TKAN:
  1487.                 tkan(tehai,Member[NewID].work);
  1488.                 if ( Ckanflag == 1 ) {                /* graphics */
  1489.                     anime_akan(NewID,Member[NewID].work);
  1490.                 } else {
  1491.                     anime_pkan(NewID,Member[NewID].work);
  1492.                 }
  1493.                 clrippatu();
  1494.                 for ( dl3 = 1; dl3 < 4; dl3++ ) {
  1495.                     Oldhai = (haitype)Member[NewID].work;
  1496. /*                    dl5 = Dir_chankan((NewID+dl3) % 4, Oldhai);*/
  1497. /* =======================Dir_chankan========================= */
  1498.                     if ( !Kansen_mode && ((NewID+dl3)%4 == USRNO ) ) {
  1499. /* ===========================Usr_chankan============================= */
  1500.                         if ( ((Ckanflag != 1) && canagari(&Member[(NewID+dl3)%4].tehai,hai))
  1501.                                     || canckan(&Member[(NewID+dl3)%4].tehai,hai) ) {
  1502.                             pon_flag = FALSE;
  1503.                             chee_flag = FALSE;
  1504.                             kan_flag = FALSE;
  1505.                             ron_flag = TRUE;
  1506. /* ===============================ask_CPKR============================= */
  1507.                             open_window_CPK(hai,&Member[(NewID+dl3)%4].tehai);
  1508.                             eFlag.act=AC_MOUSE;
  1509. /* ===================================ask_sub_CPKR===================== */
  1510.  
  1511.                             memset(nakiMatrix,0x00,12);
  1512.                             memset(nakiChecker,0x00,12);
  1513.                             for (dlc=0 ; dlc<5 ; dlc++) {
  1514.                                 switch (RTK[dlc]) {
  1515.                                     case COND_PON:
  1516.                                         nakiMatrix[0]=1;
  1517.                                         EnableMenuItem(hSubMenu, IDM_PON, MF_ENABLED);
  1518.                                         break;
  1519.                                     case COND_CHEE:
  1520.                                         nakiMatrix[1]=1;
  1521.                                         EnableMenuItem(hSubMenu, IDM_CHI, MF_ENABLED);
  1522.                                         break;
  1523.                                     case COND_MKAN:
  1524.                                         EnableMenuItem(hSubMenu, IDM_KAN, MF_ENABLED);
  1525.                                         nakiMatrix[2]=1;
  1526.                                         break;
  1527.                                     case COND_RON:
  1528.                                         nakiMatrix[4]=1;
  1529.                                         EnableMenuItem(hSubMenu, IDM_RON, MF_ENABLED);
  1530.                                         break;
  1531.                                 }
  1532.                             }
  1533.  
  1534.                             if (eFlag.act==AC_MOUSE) {
  1535.                                 jumpFlag=J_ASK_SUB_CPKR2;
  1536.                                 count_alltehai(NewID);
  1537.                                 return;
  1538.                             }
  1539.  
  1540. ASK_SUB_CPKR2:
  1541. /*                            âTâuâüâjâàü[é╠âtâèü[âY    */
  1542.                             jumpFlag=0;
  1543.                             memset(nakiMatrix,0x00,12);
  1544.                             memset(nakiChecker,0x00,12);
  1545.                             DestroyMenuCheck();
  1546.                             MenuControl(2, MF_GRAYED);
  1547.                             cnd_dl1 = CPKR[CPK_point];
  1548. /*    ùúÆEÅ≡îÅü@üFâèâ^ü[âôé¬ëƒé│éΩéΘé▄é┼
  1549.     ùúÆEÄ₧ò╧ë╗üFcnd_dl1é╔CPRKözù±é╠ë╜é¬æIæ≡é│éΩé╜é⌐é≡ê┌é╖
  1550.                 ê╚ì~üAcnd_dl1 é╠Ælé┼ö╗ÆΦé≡ìséñ*/
  1551. /* ===================================ask_sub_CPKR===================== */
  1552.                             if ( cnd_dl1 == COND_CHEE ) Member[(NewID+dl3)%4].work = chee_work[get_gind(CPK_point)];
  1553.                             dl6 = cnd_dl1;
  1554. /* ===============================ask_CPKR============================= */
  1555.                             if (dl6 == COND_RON) {
  1556.                                 dl5 = TRUE;
  1557.                             } else {
  1558.                                 dl5 = FALSE;
  1559.                             }
  1560.                         }
  1561. /* ===========================Usr_chankan============================= */
  1562.                     } else if ( ((Ckanflag != 1) && canagari(&Member[(NewID+dl3)%4].tehai,Oldhai))
  1563.                                         || canckan(&Member[(NewID+dl3)%4].tehai,Oldhai) ) {
  1564.                         dl5 = TRUE;
  1565.                     } else {
  1566.                         dl5 = FALSE;
  1567.                     }
  1568. /* =======================Dir_chankan========================= */
  1569.                     if ( dl5 ) {
  1570.                         OldID = NewID;
  1571.                         NewID = (NewID + dl3) % 4;
  1572.                         condition = COND_RON;
  1573.                         break;
  1574.                     }
  1575.                 }
  1576.                 WaveFunc(condition,1);
  1577.                 if (condition == COND_RON)
  1578.                     break;
  1579.                 if ( is4kan(NewID) ) {
  1580.                     Endflag = kan4;
  1581.                     condition = COND_END;
  1582.                     break;
  1583.                 }
  1584.                 Ckanflag = FALSE;
  1585.                 Kanflag = TRUE;
  1586.                 condition = COND_THUMO;
  1587.                 break;
  1588.             case COND_MKAN:
  1589.                 mkan(tehai,Oldhai,relocate(NewID,OldID));
  1590.                 anime_mkan(NewID,OldID,Oldhai);
  1591.                 clrippatu();
  1592.                 if ( is4kan(NewID) ) {
  1593.                     Endflag = kan4;
  1594.                     condition = COND_END;
  1595.                     break;
  1596.                 }
  1597.                 Kanflag = TRUE;
  1598.                 condition = COND_THUMO;
  1599.                 break;
  1600.             case COND_PON:
  1601.                 pon(tehai,Oldhai,relocate(NewID,OldID));
  1602.                 anime_pon(NewID,OldID,Oldhai);
  1603.                                 /* graphics */
  1604.                 clrippatu();
  1605.                 condition = COND_STEHAI;
  1606.                 break;
  1607.             case COND_CHEE:
  1608.                 chee(tehai,Oldhai,Member[NewID].work);
  1609.                 anime_chee(NewID,OldID);
  1610.                                 /* graphics */
  1611.                 clrippatu();
  1612.                 condition = COND_STEHAI;
  1613.                 break;
  1614.             default:
  1615.                 condition = COND_ERR;
  1616.         }
  1617.  
  1618.         if ( reach_num() == 4 ) {    /* reach_numé═ö╗ÆΦè╓Éö */
  1619.             condition = COND_END;
  1620.             Endflag = reach4;
  1621.         }
  1622.         if ( is4kaze() ) {        /* is4kazeé═ö╗ÆΦè╓Éö */
  1623.             condition = COND_END;
  1624.             Endflag = kaze4;
  1625.         }
  1626.     }
  1627.  
  1628.     if ( (condition == COND_END) || (condition == COND_RON) ) {
  1629. /*        êΩï╟ÅIù╣Å≡îÅâtâëâOéÅéÄ    */
  1630.         eFlag.tern=IC_KYOKUEND;
  1631.         
  1632.     }
  1633. /*    =========êΩï╟é¬ÅIéφéΘé▄é┼îJéΦò╘é╖éτé╡éó(^^;========    */
  1634.  
  1635. /* é▒é▒é⌐éτë║é═æSé─ö╗ÆΦüEò\Īé╠é╜é«éó */
  1636. /* êΩï╟ôαÅ≤æ╘é┼é═æfÆ╩éΦ */
  1637.     if (eFlag.tern == IC_KYOKUEND) {
  1638.         if ( !Sinan_mode && !Kansen_mode ) learn_yaku(2);        /* û≡é╠èwÅK */
  1639.         if ( condition == COND_RON ) {
  1640.             if ( (NewID != OldID) && (Member[OldID].tehai.reach)
  1641.                                         && (Member[OldID].tehai.ippatu) ) {
  1642.                 Member[OldID].score += 100;
  1643.                 Stick--;
  1644.                 del_reach_stick(OldID);
  1645.             }
  1646.             Member[NewID].tehai.open = TRUE;
  1647.             put_alltehai(NewID);
  1648.             anime_ron(NewID,(Kanflag)?NewID:OldID,Oldhai);
  1649.             if ( Member[NewID].tehai.reach ) {
  1650.                 display_uradora(makedora());
  1651.             } else {
  1652.                 display_uradora(makedummydora());
  1653.             }
  1654.             set_score(calscr(&Member[NewID].tehai,Oldhai,(NewID != OldID)));
  1655.             DialogBox(hDlgInstance, "YakuWindow", hWnd, (DLGPROC)lpfnYakuDlgProc);
  1656. /*            display_score();    */
  1657.             DialogBox(hDlgInstance, "ScoreWindow", hWnd, (DLGPROC)lpfnScorDlgProc);
  1658.             Stick = 0;
  1659.             if ( (NewID == 3) && !Sinan_mode && !Kansen_mode )
  1660.                 learn_agari();
  1661.             if ( (OldID == 3) && !Sinan_mode && !Kansen_mode )
  1662.                 learn_anpai();
  1663.         } else if ( condition == COND_END ) {
  1664.             if ( Endflag == ryukyoku ) {
  1665.                    for ( dl1 = 0; dl1 < 4; dl1++ ) {            /* ù¼é╡â}âôâKâôénéj */
  1666.                     if ( nagasi(&Member[dl1].tehai) ) na = dl1+1;
  1667.                    }
  1668.                    if ( na ) {                    /* ù¼é╡â}âôâKâô */
  1669.                     na--;
  1670.                     OldID = na;
  1671.                     NewID = na;
  1672.                     display_nagasi(Member[na].tehai.kaze == TON ? TRUE : FALSE);
  1673.                     set_score(Member[na].tehai.kaze == TON ? 1200 : 800);
  1674.                     DialogBox(hDlgInstance, "YakuWindow", hWnd, (DLGPROC)lpfnYakuDlgProc);
  1675.                     DialogBox(hDlgInstance, "ScoreWindow", hWnd, (DLGPROC)lpfnScorDlgProc);
  1676.                 /*    display_score();    */
  1677.                     Stick = 0;
  1678.                     condition = COND_RON;            /* Åπé¬éΦû≡é╞é╖éΘ */
  1679.                 } else {
  1680.                     set_ryukyoku_score();
  1681.                     DialogBox(hDlgInstance, "Ryukyoku", hWnd, (DLGPROC)lpfnRyukDlgProc);
  1682. /*                    display_ryukyoku();    */
  1683.                     DialogBox(hDlgInstance, "ScoreWindow", hWnd, (DLGPROC)lpfnScorDlgProc);
  1684.                 /*    display_score();*/
  1685.                 }
  1686.             } else {
  1687.                 switch ( Endflag ) {
  1688.                     case kyushu:
  1689.                         strcpy(dispMessage," ïπÄφïπöv ");
  1690.                         DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  1691.                         Member[NewID].tehai.open = TRUE;
  1692.                         put_alltehai(NewID);
  1693.                         break;
  1694.                     case kan4:
  1695.                         strcpy(dispMessage," Äl èJ ₧╚ ");
  1696.                         DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  1697.                         break;
  1698.                     case reach4:
  1699.                         strcpy(dispMessage,"Älë╞âèü[â`");
  1700.                         DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  1701.                         break;
  1702.                     case kaze4:
  1703.                         strcpy(dispMessage,"ÄlòùÄqÿAæ┼");
  1704.                         DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  1705.                         break;
  1706.                    }
  1707. /*                Wait(-1);    */
  1708. /*                   dispose_message(); */
  1709.             }
  1710.         }
  1711.     /*    êΩï╟é╠ö╗ÆΦ    */
  1712.         if ( (condition == COND_RON) && (Member[NewID].tehai.kaze != TON) ) {
  1713.             Siba = 0;
  1714.             tonke++;
  1715.         } else {
  1716.             Siba++;
  1717.             if ( (condition == COND_END) && (Endflag == ryukyoku) && (Ba_mark == TON)
  1718.                                                     && !tempai(&Member[ton_id].tehai) ) {
  1719.                 tonke++;
  1720.             }
  1721.         }
  1722.     /*    ö╝ææé╠ÅIù╣ö╗ÆΦ    */
  1723.         if (tonke>=4) {
  1724.             tonke=0;
  1725.             Ba_mark++;
  1726.             if (Ba_mark>NAN) {
  1727.                 KillTimer(hWnd,ID_DISPTIME);
  1728.                 strcpy(dispMessage," ö╝ææÅIù╣ ");
  1729.                 DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  1730.     /*            put_message(END_MSG);       */
  1731.                 display_all_lastscore();
  1732.                 DialogBox(hDlgInstance, "TotalWindow", hWnd, (DLGPROC)lpfnTotaDlgProc);
  1733.                 Ba_mark=TON;
  1734.                 eFlag.tern = IC_HANEND;
  1735.                 MenuControl(0, MF_ENABLED);
  1736.                 MenuControl(2, MF_GRAYED);
  1737.                 MenuControl(1,0);
  1738.                 return;
  1739.             }
  1740.         }
  1741.         InvalidateRect(hWnd, NULL, TRUE);
  1742.         reaStick=Stick;
  1743.         reach_mark=0;
  1744.     }
  1745.     if (eFlag.tern != IC_HANEND)
  1746.         goto START;
  1747. }
  1748.  
  1749. /************************************************/
  1750. /*                        */
  1751. /*    test main                */
  1752. /*                        */
  1753. /************************************************/
  1754. /*
  1755. static menu_atom menu_atom2[] = {
  1756.     { "ÅIü@ù╣",1 },
  1757.     { "îpü@æ▒",0 },
  1758. };
  1759. static menu menu2 = { menu_atom2,2, };
  1760.  
  1761. static menu_atom menu_atomyn[] = {
  1762.     { "éxédér",1 },
  1763.     { "émü@én",0 },
  1764. };
  1765. static menu menuyn = { menu_atomyn,2, };
  1766.  
  1767. static menu_atom menu_atom3[] = {
  1768.     { "æ┼é┐ÄΦé╠î≡æπ",2 },
  1769.     { "û╝æOé╠ôoÿ^",1 },
  1770.     { "û╝æOé╠ò╧ìX",4 },
  1771.     { "ÅIü@ù╣",3 },
  1772.     { "âåü[âeâBâèâeâB",5 },
  1773.     { "âüâjâàü[",-1 },
  1774. };
  1775. static menu menu3 = { menu_atom3,6, };
  1776.  
  1777. static menu_atom menu_atom4[] = {
  1778.     { "è╧Éφâéü[âh",1 },
  1779.     { "Äwô∞âéü[âh",2 },
  1780.     { "âüâjâàü[",-1 },
  1781. };
  1782. static menu menu4 = { menu_atom4,3, };
  1783.  
  1784. static menu_atom menu_atom5[] = {
  1785.     { "éaé╔Åëè·âtâ@âCâïì∞ɼ",1 },
  1786.     { "é`é⌐éτéaé╔âfü[â^ô]æù",2 },
  1787.     { "éaé⌐éτé`é╔âfü[â^ô]æù",3 },
  1788.     { "âüâjâàü[",-1 },
  1789. };
  1790. static menu menu5 = { menu_atom5,4 };
  1791. */
  1792. static void get_other(int sinan)
  1793. {
  1794.     int *man_list;
  1795.     int i;
  1796.  
  1797.     man_list = pick_other(Member[3].men,sinan);
  1798.     for ( i = 0; i < 3; i++ ) {
  1799.     Member[i].men = man_list[i];
  1800.     Wload(men[man_list[i]].network,i);
  1801.     }
  1802. }
  1803.  
  1804. void    MenuControl(int group,UINT flag)
  1805. {
  1806.     switch (group) {
  1807.         case 0:
  1808.             hSubMenu=GetSubMenu(hMenu,0);
  1809.             EnableMenuItem(hSubMenu, IDM_KACHI , flag);
  1810.             EnableMenuItem(hSubMenu, IDM_KAKE  , flag);
  1811.             EnableMenuItem(hSubMenu, IDM_FREE  , flag);
  1812.             EnableMenuItem(hSubMenu, IDM_KANSEN, flag);
  1813.             EnableMenuItem(hSubMenu, IDM_SHINAN, flag);
  1814.             break;
  1815.         case 1:
  1816.             hSubMenu=GetSubMenu(hMenu,1);
  1817.             if (flag==1) {
  1818.                 EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  1819.                 EnableMenuItem(hSubMenu, IDM_ENV,  MF_ENABLED);
  1820.             } else {
  1821.                 EnableMenuItem(hSubMenu, IDM_INIT, MF_ENABLED);
  1822.                 EnableMenuItem(hSubMenu, IDM_ENV,  MF_GRAYED);
  1823.             }
  1824.             break;
  1825.         case 2:
  1826.             hSubMenu=GetSubMenu(hMenu,2);
  1827.             EnableMenuItem(hSubMenu, IDM_PON, flag);
  1828.             EnableMenuItem(hSubMenu, IDM_CHI, flag);
  1829.             EnableMenuItem(hSubMenu, IDM_KAN, flag);
  1830.             EnableMenuItem(hSubMenu, IDM_REA, flag);
  1831.             EnableMenuItem(hSubMenu, IDM_RON, flag);
  1832.             EnableMenuItem(hSubMenu, IDM_TUM, flag);
  1833.             break;
  1834.     }
  1835. }
  1836.  
  1837. /*=====================================================================
  1838.  
  1839.     ùvû±üFâEâCâôâhâEâvâìâOâëâÇâtâbâNè╓Éö
  1840.  
  1841.     ÅæÄ«üFlong FAR PASCAL _export WndProc(HWND hwnd,UINT message,
  1842.                                         UINT wParam, LONG lParam);
  1843.  
  1844.     èTùvüFwindowsâAâvâèâPü[âVâçâôé╠û{æ╠
  1845.  
  1846. =======================================================================*/
  1847. long FAR PASCAL _export WndProc(HWND hwnd,UINT message, UINT wParam,
  1848.                             LONG lParam)
  1849. {
  1850.     static    int mo = 1;
  1851.     static    int a, i, j, b, c, k;
  1852.     static    int saveflag;
  1853.     static    char msg[20];
  1854.     static    int    rButtonFlag;
  1855.     static    int    lButtonFlag;
  1856.     DWORD    lDlgBaseUnits;
  1857.     static    int    xDlgBase,yDlgBase;
  1858.     static    int xPos,yPos;
  1859.     static    int hpbak;
  1860.     static    int    nakiPoint;
  1861.     static    int    nakiBak=0;
  1862.     static    PAINTSTRUCT    ps;
  1863.     static    int    CheckCont;
  1864.     static HCURSOR    hCur[2];
  1865.     static    int    cpkrBak;
  1866.     static    int    rtkBak;
  1867.     static    int    openFlag;
  1868.     int            nakiSmall,nakiLarge,nakiPool,nakiSm,nakiLa,clFlag;
  1869.     static    int    curFlag,curBak;
  1870.     static    int    mciReturn;
  1871.     static    int    eaBak;
  1872.     static    int    eaBak2;
  1873.  
  1874.     switch (message)
  1875.     {
  1876. /*=====WM_CREATE========================================================*/
  1877.         case WM_CREATE:
  1878.             lDlgBaseUnits=GetDialogBaseUnits();
  1879.             xDlgBase=LOWORD(lDlgBaseUnits);
  1880.             yDlgBase=HIWORD(lDlgBaseUnits);
  1881. /*            âJü[â\âïé╠ò╧ìX    */
  1882.             SetCursor(winCursor[0]);
  1883.             ShowCursor(TRUE);
  1884.             gSpeed=200;
  1885.             eErr=TRUE;
  1886.             doraFlag=0;
  1887. /*            èeâ_âCâAâìâOâAâhâîâXé╠É▌ÆΦ    */
  1888.             hDlgInstance = ((LPCREATESTRUCT)lParam)->hInstance;
  1889.             lpfnWndpDlgProc  = MakeProcInstance((FARPROC)WndProc,hDlgInstance);
  1890.             lpfnInitDlgProc  = MakeProcInstance((FARPROC)InitDlgProc,hDlgInstance);
  1891.             lpfnMastDlgProc  = MakeProcInstance((FARPROC)MastDlgProc,hDlgInstance);
  1892.             lpfnDekuDlgProc  = MakeProcInstance((FARPROC)DekuDlgProc,hDlgInstance);
  1893.             lpfnCharDlgProc  = MakeProcInstance((FARPROC)CharDlgProc,hDlgInstance);
  1894.             lpfnUtilDlgProc  = MakeProcInstance((FARPROC)UtilDlgProc,hDlgInstance);
  1895.             lpfnEnviDlgProc  = MakeProcInstance((FARPROC)EnviDlgProc,hDlgInstance);
  1896.             lpfnHa99DlgProc  = MakeProcInstance((FARPROC)Ha99DlgProc,hDlgInstance);
  1897.             lpfnDispDlgProc  = MakeProcInstance((FARPROC)DispDlgProc,hDlgInstance);
  1898.             lpfnScorDlgProc  = MakeProcInstance((FARPROC)ScorDlgProc,hDlgInstance);
  1899.             lpfnEScrDlgProc  = MakeProcInstance((FARPROC)EScrDlgProc,hDlgInstance);
  1900.             lpfnYakuDlgProc  = MakeProcInstance((FARPROC)YakuDlgProc,hDlgInstance);
  1901.             lpfnRyukDlgProc  = MakeProcInstance((FARPROC)RyukDlgProc,hDlgInstance);
  1902.             lpfnMesdDlgProc  = MakeProcInstance((FARPROC)MesdDlgProc,hDlgInstance);
  1903.             lpfnMemiDlgProc  = MakeProcInstance((FARPROC)MemiDlgProc,hDlgInstance);
  1904.             lpfnTotaDlgProc  = MakeProcInstance((FARPROC)TotaDlgProc,hDlgInstance);
  1905.             lpfnProfDlgProc  = MakeProcInstance((FARPROC)ProfDlgProc,hDlgInstance);
  1906.             lpfnKatiDlgProc  = MakeProcInstance((FARPROC)KatiDlgProc,hDlgInstance);
  1907.             lpfnChgpDlgProc  = MakeProcInstance((FARPROC)ChgpDlgProc,hDlgInstance);
  1908.             lpfnChgnDlgProc  = MakeProcInstance((FARPROC)ChgnDlgProc,hDlgInstance);
  1909.             lpfnFddsDlgProc  = MakeProcInstance((FARPROC)FddsDlgProc,hDlgInstance);
  1910.             lpfnChrEDlgProc  = MakeProcInstance((FARPROC)ChrEDlgProc,hDlgInstance);
  1911.             lpfnAbouDlgProc  = MakeProcInstance((FARPROC)AbouDlgProc,hDlgInstance);
  1912. /*            âüâjâàü[éQîQé≡âAâNâeâBâuë╗    */
  1913.             MenuControl(2, MF_GRAYED);
  1914. /*            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âtâèü[âY    */
  1915.             hSubMenu=GetSubMenu(hMenu,1);
  1916.             EnableMenuItem(hSubMenu, IDM_ENV, MF_GRAYED);
  1917.  
  1918.             rButtonFlag=0;
  1919.             openFlag=0;
  1920.             mastNo=255;
  1921.             meijin=0;
  1922.  
  1923.             Ba_mark = TON;
  1924.             seFlag=1;
  1925.             CheckCont=256;
  1926.             eFlag.tern=IC_FIRST;
  1927.             eFlag.proc=CC_DEFAULT;
  1928.             eFlag.act=AC_DEFAULT;
  1929.             if ( getenv("TMP") != NULL ) {
  1930.                 DebugMode = 1;
  1931.             }
  1932.             Sinan_mode = FALSE;
  1933.             while ( !load_all_man(1) ) {
  1934.                 break;
  1935.             }
  1936.             a = Member[3].men;
  1937.             eErr=Wload(men[a].network,3);
  1938.             saveflag = FALSE;
  1939.             if ( Sinan_mode )
  1940.                 eErr=Wload(men[Member[3].men].network,3);
  1941.             return 0;
  1942. /*=====WM_CREATE========================================================*/
  1943. /*=====WM_COMMAND=======================================================*/
  1944.         case WM_COMMAND:
  1945.             switch (eFlag.tern) {
  1946.                 case IC_FIRST:    /* âQü[âÇèJÄnæO */
  1947.                     if ( saveflag ) {
  1948.                         Wsave(men[Member[3].men].network);
  1949.                         save_all_man();
  1950.                         saveflag = FALSE;
  1951.                     }
  1952.                     ExTopMenu = 1;
  1953.                     Game_mode = message-10+1;
  1954.                     Kansen_mode = FALSE;
  1955.                     Sinan_mode = FALSE;
  1956.                     switch (wParam) {
  1957.                         case IDM_EXIT:    /* ÅIù╣    */
  1958.                             SendMessage(hwnd, WM_CLOSE, 0 ,0L);
  1959.                             return 0;
  1960.                         case IDM_KACHI:    /* û╝ÉlÉφ */
  1961.                             a = Member[3].men;
  1962.                             b = (men[a].rank-1);
  1963.                             if ( b == 0 ) b = 1;
  1964.                             if ( b < 0 ) b = 0;
  1965.                             if ( b > 13 ) b = 13;
  1966.                             c = 0;
  1967.                             for ( i = 0; i < 17; i++ ) {
  1968.                                 if ( (a != i) && (men[i].rank >= b) && (men[i].rank < b+4) ) {
  1969.                                     Member[c].men = i;
  1970.                                     eErr=Wload(men[i].network,c++);
  1971.                                 }
  1972.                             }
  1973.                             Display_Option = 2;
  1974.                             saveflag = TRUE;
  1975. /*                             é▒é▒é┼â_âCâAâìâOâ{âbâNâXé┼é╒éΩéóéΓü[èmöF */
  1976.                             if (!DialogBox(hDlgInstance, "KachiProf", hwnd, (DLGPROC)lpfnKatiDlgProc)) {
  1977.                                 return 0;
  1978.                             }
  1979.                             eFlag.tern=IC_PLAYERSEL;
  1980.                             eFlag.proc=CC_KACHI;
  1981. /*                            âüâjâàü[éOîQé≡âuâìâbâN    */
  1982.                             MenuControl(0, MF_GRAYED);
  1983. /*                            âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  1984.                             hSubMenu=GetSubMenu(hMenu,1);
  1985.                             EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  1986. /*                            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âAâNâeâBâuë╗    */
  1987.                             EnableMenuItem(hSubMenu, IDM_ENV, MF_ENABLED);
  1988.                             InvalidateRect(hWnd, NULL, TRUE);
  1989. /*                            âJü[â\âïé╠ò╧ìX    */
  1990.                             SetCursor(winCursor[1]);
  1991.                             ShowCursor(TRUE);
  1992.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  1993. /*                            PostMessage(hwnd, WM_USER+104, 0, 0L);    */
  1994.                             if (NewID!=3)
  1995.                                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  1996.                             return 0;
  1997.                         case IDM_KAKE:    /* ôqé»ûâÉ¥ */
  1998.                             Display_Option = 0;
  1999.                             saveflag = TRUE;
  2000. /*                             é▒é▒é┼â_âCâAâìâOâ{âbâNâXé┼é╒éΩéóéΓü[É⌠æ≤ */
  2001.                             if (!DialogBox(hDlgInstance, "CharSelect", hwnd, (DLGPROC)lpfnCharDlgProc)) {
  2002.                                 return 0;
  2003.                             }
  2004. /*                            âîü[âgò\Ī    */
  2005.                             eFlag.tern=IC_PLAYERSEL;
  2006.                             eFlag.proc=CC_KAKE;
  2007. /*                            âüâjâàü[éOîQé≡âuâìâbâN    */
  2008.                             MenuControl(0, MF_GRAYED);
  2009. /*                            âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  2010.                             hSubMenu=GetSubMenu(hMenu,1);
  2011.                             EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  2012. /*                            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âAâNâeâBâuë╗    */
  2013.                             EnableMenuItem(hSubMenu, IDM_ENV, MF_ENABLED);
  2014.                             InvalidateRect(hWnd, NULL, TRUE);
  2015. /*                            âJü[â\âïé╠ò╧ìX    */
  2016.                             SetCursor(winCursor[1]);
  2017.                             ShowCursor(TRUE);
  2018.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2019.                             if (NewID!=3)
  2020.                                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  2021.                             return 0;
  2022.                         case IDM_FREE:
  2023.                             Display_Option = 2;
  2024. /*                             é▒é▒é┼â_âCâAâìâOâ{âbâNâXé┼é╒éΩéóéΓü[É⌠æ≤ */
  2025.                             if (!DialogBox(hDlgInstance, "CharSelect", hwnd, (DLGPROC)lpfnCharDlgProc)) {
  2026.                                 return 0;
  2027.                             }
  2028.                             saveflag = TRUE;
  2029.                             eFlag.tern=IC_PLAYERSEL;
  2030.                             eFlag.proc=CC_FREE;
  2031. /*                            âüâjâàü[éOîQé≡âuâìâbâN    */
  2032.                             MenuControl(0, MF_GRAYED);
  2033. /*                            âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  2034.                             hSubMenu=GetSubMenu(hMenu,1);
  2035.                             EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  2036. /*                            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âAâNâeâBâuë╗    */
  2037.                             EnableMenuItem(hSubMenu, IDM_ENV, MF_ENABLED);
  2038.                             InvalidateRect(hWnd, NULL, TRUE);
  2039. /*                            âJü[â\âïé╠ò╧ìX    */
  2040.                             SetCursor(winCursor[1]);
  2041.                             ShowCursor(TRUE);
  2042.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2043.                             if (NewID!=3)
  2044.                                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  2045.                             return 0;
  2046.                         case IDM_KANSEN:
  2047.                             Display_Option = 2;
  2048.                             Kansen_mode = TRUE;
  2049.                             if (!DialogBox(hDlgInstance, "CharSelect", hwnd, (DLGPROC)lpfnCharDlgProc)) {
  2050.                                 mastNo=255;
  2051.                                 Kansen_mode = FALSE;
  2052.                                 return 0;
  2053.                             }
  2054.                             eFlag.tern=IC_PLAYERSEL;
  2055.                             eFlag.proc=CC_KANSEN;
  2056. /*                            âüâjâàü[éOîQé≡âuâìâbâN    */
  2057.                             MenuControl(0, MF_GRAYED);
  2058. /*                            âüâjâàü[éQîQé≡âuâìâbâN    */
  2059.                             MenuControl(2, MF_GRAYED);
  2060. /*                            âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  2061.                             hSubMenu=GetSubMenu(hMenu,1);
  2062.                             EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  2063. /*                            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âAâNâeâBâuë╗    */
  2064.                             EnableMenuItem(hSubMenu, IDM_ENV, MF_ENABLED);
  2065.                             InvalidateRect(hWnd, NULL, TRUE);
  2066. /*                            âJü[â\âïé╠ò╧ìX    */
  2067.                             SetCursor(winCursor[1]);
  2068.                             ShowCursor(TRUE);
  2069.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2070.                             PostMessage(hwnd, WM_USER+103, 0, 0L);
  2071.                             return 0;
  2072.                         case IDM_SHINAN:
  2073.                             Sinan_mode = TRUE;
  2074.                             Wsave(men[Member[3].men].network);
  2075. /*                            ÄtÅáæIæ≡    */
  2076.                             if (!DialogBox(hDlgInstance, "MastSelect", hwnd, (DLGPROC)lpfnMastDlgProc)) {
  2077.                                 mastNo=255;
  2078.                                 Sinan_mode = FALSE;
  2079.                                 return 0;
  2080.                             }
  2081. /*                            âüâôâoü[æIæ≡    */
  2082.                             if (!DialogBox(hDlgInstance, "DekuSelect", hwnd, (DLGPROC)lpfnDekuDlgProc)) {
  2083.                                 mastNo=255;
  2084.                                 Sinan_mode = FALSE;
  2085.                                 return 0;
  2086.                             }
  2087.                             Display_Option = 2;
  2088.                             eFlag.tern=IC_PLAYERSEL;
  2089.                             eFlag.proc=CC_SHINAN;
  2090. /*                            âüâjâàü[éOîQé≡âuâìâbâN    */
  2091.                             MenuControl(0, MF_GRAYED);
  2092. /*                            âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  2093.                             hSubMenu=GetSubMenu(hMenu,1);
  2094.                             EnableMenuItem(hSubMenu, IDM_INIT, MF_GRAYED);
  2095. /*                            âüâjâàü[éPîQé╠è┬ï½É▌ÆΦé╠âAâNâeâBâuë╗    */
  2096.                             EnableMenuItem(hSubMenu, IDM_ENV, MF_ENABLED);
  2097.                             InvalidateRect(hWnd, NULL, TRUE);
  2098. /*                            âJü[â\âïé╠ò╧ìX    */
  2099.                             SetCursor(winCursor[1]);
  2100.                             ShowCursor(TRUE);
  2101.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2102.                             if (NewID!=3)
  2103.                                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  2104.                             return 0;
  2105.                         case IDM_INIT:
  2106.                             DialogBox(hDlgInstance, "InitMenu", hwnd, (DLGPROC)lpfnInitDlgProc);
  2107.                             return 0;
  2108.                         case IDM_NOMIDI:
  2109.                             MusicClose();
  2110.                             return 0;
  2111.                         case IDM_MUSIC1:
  2112.                             MusicClose();
  2113.                             MusicPlay(hwnd,0);
  2114.                             return 0;
  2115.                         case IDM_MUSIC2:
  2116.                             MusicClose();
  2117.                             MusicPlay(hwnd,1);
  2118.                             return 0;
  2119.                         case IDM_MUSIC3:
  2120.                             MusicClose();
  2121.                             MusicPlay(hwnd,2);
  2122.                             return 0;
  2123.                         case IDM_MUSIC4:
  2124.                             MusicClose();
  2125.                             MusicPlay(hwnd,3);
  2126.                             return 0;
  2127.                         case IDM_MUSIC5:
  2128.                             MusicClose();
  2129.                             MusicPlay(hwnd,4);
  2130.                             return 0;
  2131.                         case IDM_MUSIC6:
  2132.                             MusicClose();
  2133.                             MusicPlay(hwnd,5);
  2134.                             return 0;
  2135.                         case IDM_SEON:
  2136.                             hSubMenu=GetSubMenu(hMenu,1);
  2137.                             CheckMenuItem(hSubMenu, IDM_SEOFF, MF_ENABLED);
  2138.                             CheckMenuItem(hSubMenu, IDM_SEON , MF_CHECKED);
  2139.                             seFlag=1;
  2140.                             return 0;
  2141.                         case IDM_SEOFF:
  2142.                             hSubMenu=GetSubMenu(hMenu,1);
  2143.                             CheckMenuItem(hSubMenu, IDM_SEOFF, MF_CHECKED);
  2144.                             CheckMenuItem(hSubMenu, IDM_SEON , MF_ENABLED);
  2145.                             seFlag=0;
  2146.                             return 0;
  2147.                         case IDM_ABOUT:
  2148.                             DialogBox(hDlgInstance, "ABOUTDLGBOX", hwnd, (DLGPROC)lpfnAbouDlgProc);
  2149.                             return 0;
  2150.                         case IDM_MEMINFO:
  2151.                             DialogBox(hDlgInstance, "MEM_INFO", hwnd, (DLGPROC)lpfnMemiDlgProc);
  2152.                             return 0;
  2153.                     }
  2154.                 default:
  2155.                     if (CheckCont==256) {
  2156.                         cpkrBak=CPK_point;
  2157.                         rtkBak=RTK_point;
  2158.                     }
  2159.                     switch (wParam) {
  2160.                         case IDM_EXIT:    /* ÅIù╣    */
  2161.                             SendMessage(hwnd, WM_CLOSE, 0 ,0L);
  2162.                             return 0;
  2163.                         case IDM_PON:
  2164.                         /*    â|âbâvâAâbâvâüâjâàü[ìÇû┌é╠â`âFâbâNüiâtâèâbâvâtâìâbâv)    */
  2165.                             hSubMenu=GetSubMenu(hMenu,2);
  2166.                             CheckMenuItem(hSubMenu, IDM_PON,MF_BYCOMMAND|MF_CHECKED);
  2167.                             nakiChecker[0]=0x01;
  2168.                             if (CheckCont!=256)    {
  2169.                                 nakiChecker[CheckCont-0x31]=0x00;
  2170.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2171.                                 if (CheckCont==IDM_PON) {
  2172.                                     nakiChecker[0]=0x00;
  2173.                                     CheckCont=256;
  2174.                                     CPK_point=cpkrBak;
  2175.                                     dispose_gind();
  2176.                                     return 0;
  2177.                                 }
  2178.                             }
  2179.                             CheckCont=IDM_PON;
  2180.                             for (i=0 ; i<4 ;i++) {
  2181.                                 if (CPKR[i]==COND_PON) {
  2182.                                     CPK_point=i;
  2183.                                     break;
  2184.                                 }
  2185.                             }
  2186.                             dispose_gind();
  2187.                             display_gind(CPK_point);
  2188.                             return 0;
  2189.                         case IDM_CHI:
  2190.                         /*    â|âbâvâAâbâvâüâjâàü[ìÇû┌é╠â`âFâbâNüiâtâèâbâvâtâìâbâv)    */
  2191.                             hSubMenu=GetSubMenu(hMenu,2);
  2192.                             CheckMenuItem(hSubMenu, IDM_CHI,MF_BYCOMMAND|MF_CHECKED);
  2193.                             nakiChecker[1]=0x01;
  2194.                             if (CheckCont!=256)    {
  2195.                                 nakiChecker[CheckCont-0x31]=0x00;
  2196.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2197.                                 if (CheckCont==IDM_CHI) {
  2198.                                     nakiChecker[1]=0x00;
  2199.                                     CheckCont=256;
  2200.                                     CPK_point=cpkrBak;
  2201.                                     dispose_gind();
  2202.                                     return 0;
  2203.                                 }
  2204.                             }
  2205.                             CheckCont=IDM_CHI;
  2206.                             for (i=0 ; i<4 ;i++) {
  2207.                                 if (CPKR[i]==COND_CHEE) {
  2208.                                     CPK_point=i;
  2209.                                     break;
  2210.                                 }
  2211.                             }
  2212.                             dispose_gind();
  2213.                             display_gind(CPK_point);
  2214.                             return 0;
  2215.                         case IDM_KAN:
  2216.                             hSubMenu=GetSubMenu(hMenu,2);
  2217.                             CheckMenuItem(hSubMenu, IDM_KAN,MF_BYCOMMAND|MF_CHECKED);
  2218.                             nakiChecker[2]=0x01;
  2219.                             if (CheckCont!=256) {
  2220.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2221.                                 nakiChecker[CheckCont-0x31]=0x00;
  2222.                                 if (CheckCont==IDM_KAN) {
  2223.                                     nakiChecker[2]=0x00;
  2224.                                     CPK_point=cpkrBak;
  2225.                                     RTK_point=rtkBak;
  2226.                                     CheckCont=256;
  2227.                                     dispose_gind();
  2228.                                     return 0;
  2229.                                 }
  2230.                             }
  2231.                             CheckCont=IDM_KAN;
  2232.                             if (jumpFlag==J_ASK_SUB_CPKR1||jumpFlag==J_ASK_SUB_CPKR2) {
  2233.                                 for (i=0 ; i<4 ;i++) {
  2234.                                     if (CPKR[i]==COND_MKAN) {
  2235.                                         CPK_point=i;
  2236.                                         break;
  2237.                                     }
  2238.                                 }
  2239.                                 dispose_gind();
  2240.                                 display_gind(CPK_point);
  2241.                             } else if (jumpFlag==J_ASK_SUB_RTK) {
  2242.                                 for (i=0 ; i<4 ;i++) {
  2243.                                     if (RTK[i]==COND_TKAN) {
  2244.                                         RTK_point=i;
  2245.                                         break;
  2246.                                     }
  2247.                                 }
  2248.                                 dispose_gind();
  2249.                                 display_gind(RTK_point);
  2250.                             }
  2251.                             return 0;
  2252.                         case IDM_REA:
  2253.                             hSubMenu=GetSubMenu(hMenu,2);
  2254.                             CheckMenuItem(hSubMenu, IDM_REA,MF_BYCOMMAND|MF_CHECKED);
  2255.                             nakiChecker[3]=0x01;
  2256.                             if (CheckCont!=256) {
  2257.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2258.                                 nakiChecker[CheckCont-0x31]=0x00;
  2259.                                 if (CheckCont==IDM_REA) {
  2260.                                     nakiChecker[3]=0x00;
  2261.                                     RTK_point=rtkBak;
  2262.                                     CheckCont=256;
  2263.                                     unindicate_hai(Hp);
  2264.                                     return 0;
  2265.                                 }
  2266.                             }
  2267.                             CheckCont=IDM_REA;
  2268.                             for (i=0 ; i<4 ;i++) {
  2269.                                 if (RTK[i]==COND_REACH) {
  2270.                                     RTK_point=i;
  2271.                                     break;
  2272.                                 }
  2273.                             }
  2274.                             return 0;
  2275.                         case IDM_RON:
  2276.                             hSubMenu=GetSubMenu(hMenu,2);
  2277.                             CheckMenuItem(hSubMenu, IDM_RON,MF_BYCOMMAND|MF_CHECKED);
  2278.                             nakiChecker[4]=0x01;
  2279.                             if (CheckCont!=256) {
  2280.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2281.                                 nakiChecker[CheckCont-0x31]=0x00;
  2282.                                 if (CheckCont==IDM_RON) {
  2283.                                     nakiChecker[4]=0x00;
  2284.                                     CPK_point=cpkrBak;
  2285.                                     CheckCont=256;
  2286.                                     dispose_gind();
  2287.                                     return 0;
  2288.                                 }
  2289.                             }
  2290.                             CheckCont=IDM_RON;
  2291.                             for (i=0 ; i<4 ;i++) {
  2292.                                 if (CPKR[i]==COND_RON) {
  2293.                                     CPK_point=i;
  2294.                                     break;
  2295.                                 }
  2296.                             }
  2297.                             dispose_gind();
  2298.                             display_gind(CPK_point);
  2299.                             return 0;
  2300.                         case IDM_TUM:
  2301.                             hSubMenu=GetSubMenu(hMenu,2);
  2302.                             CheckMenuItem(hSubMenu, IDM_TUM,MF_BYCOMMAND|MF_CHECKED);
  2303.                             nakiChecker[5]=0x01;
  2304.                             if (CheckCont!=256)    {
  2305.                                 CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2306.                                 nakiChecker[CheckCont-0x31]=0x00;
  2307.                                 if (CheckCont==IDM_TUM) {
  2308.                                     nakiChecker[5]=0x00;
  2309.                                     RTK_point=rtkBak;
  2310.                                     CheckCont=256;
  2311.                                     dispose_gind();
  2312.                                     return 0;
  2313.                                 }
  2314.                             }
  2315.                             CheckCont=IDM_TUM;
  2316.                             for (i=0 ; i<4 ;i++) {
  2317.                                 if (RTK[i]==COND_RON) {
  2318.                                     RTK_point=i;
  2319.                                     break;
  2320.                                 }
  2321.                             }
  2322.                             return 0;
  2323.                         case IDM_ABOUT:
  2324.                             DialogBox(hDlgInstance, "ABOUTDLGBOX", hwnd, (DLGPROC)lpfnAbouDlgProc);
  2325.                             return 0;
  2326.                         case IDM_MEMINFO:
  2327.                             DialogBox(hDlgInstance, "MEM_INFO", hwnd, (DLGPROC)lpfnMemiDlgProc);
  2328.                             return 0;
  2329.                         case IDM_HELP:
  2330.                             HelpProc();
  2331.                             return 0;
  2332.                         case IDM_ENV:
  2333.                             eaBak=eFlag.act;
  2334.                             eFlag.act=AC_STOP;
  2335.                             if (DialogBox(hDlgInstance, "ENVIROMENT", hwnd, (DLGPROC)lpfnEnviDlgProc)==FALSE) {
  2336.                                 KillTimer(hWnd,ID_DISPTIME);
  2337.                                 mastNo=255;
  2338.                                 Sinan_mode = FALSE;
  2339.                                 Kansen_mode = FALSE;
  2340.                                 Ba_mark=TON;
  2341.                                 openFlag = 1;
  2342.                                 meijin=0;
  2343.                                 eFlag.tern=IC_FIRST;
  2344.                                 eFlag.proc=CC_DEFAULT;
  2345.                                 eFlag.proc=AC_DEFAULT;
  2346.                                 jumpFlag=J_DEFAULT;
  2347.                                 MenuControl(0, MF_ENABLED);
  2348.                                 MenuControl(2, MF_GRAYED);
  2349.                                 hSubMenu=GetSubMenu(hMenu,1);
  2350.                                 EnableMenuItem(hSubMenu, IDM_ENV, MF_GRAYED);
  2351.                                 EnableMenuItem(hSubMenu, IDM_INIT,MF_ENABLED);
  2352.                                 InvalidateRect(hWnd, NULL, TRUE);
  2353.                                 MusicClose();
  2354.                                 MusicPlay(hwnd,0);
  2355.                                 break;
  2356.                             }
  2357.                             eFlag.act=eaBak;
  2358.                             SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2359.                             return 0;
  2360.                         case IDM_SEON:
  2361.                             hSubMenu=GetSubMenu(hMenu,1);
  2362.                             CheckMenuItem(hSubMenu, IDM_SEOFF, MF_ENABLED);
  2363.                             CheckMenuItem(hSubMenu, IDM_SEON , MF_CHECKED);
  2364.                             seFlag=1;
  2365.                             return 0;
  2366.                         case IDM_SEOFF:
  2367.                             hSubMenu=GetSubMenu(hMenu,1);
  2368.                             CheckMenuItem(hSubMenu, IDM_SEOFF, MF_CHECKED);
  2369.                             CheckMenuItem(hSubMenu, IDM_SEON , MF_ENABLED);
  2370.                             seFlag=0;
  2371.                             return 0;
  2372.                         case IDM_NOMIDI:
  2373.                             MusicClose();
  2374.                             return 0;
  2375.                         case IDM_MUSIC1:
  2376.                             MusicClose();
  2377.                             MusicPlay(hwnd,0);
  2378.                             return 0;
  2379.                         case IDM_MUSIC2:
  2380.                             MusicClose();
  2381.                             MusicPlay(hwnd,1);
  2382.                             return 0;
  2383.                         case IDM_MUSIC3:
  2384.                             MusicClose();
  2385.                             MusicPlay(hwnd,2);
  2386.                             return 0;
  2387.                         case IDM_MUSIC4:
  2388.                             MusicClose();
  2389.                             MusicPlay(hwnd,3);
  2390.                             return 0;
  2391.                         case IDM_MUSIC5:
  2392.                             MusicClose();
  2393.                             MusicPlay(hwnd,4);
  2394.                             return 0;
  2395.                         case IDM_MUSIC6:
  2396.                             MusicClose();
  2397.                             MusicPlay(hwnd,5);
  2398.                             return 0;
  2399.                     }
  2400.             }
  2401.             break;
  2402.         case MM_MCINOTIFY:
  2403.             if (wParam==MCI_NOTIFY_SUCCESSFUL)
  2404.                 MusicReplay(hwnd);
  2405.             break;
  2406.         case WM_PALETTECHANGED:
  2407.             if (wParam==hwnd)
  2408.                 return 0L;
  2409.         case WM_QUERYNEWPALETTE:
  2410.             hdc = GetDC(hwnd) ;
  2411.             if (openFlag==1&&eFlag.tern==IC_FIRST&&meijin!=1)
  2412.                 OpenPut2(hdc);
  2413.             ReleaseDC(hwnd, hdc) ;
  2414.             break;
  2415.         case WM_PAINT:
  2416.             hdc = BeginPaint (hwnd, &ps) ;
  2417. /*            âIü[âvâjâôâOéaéléoé╠âvâbâg    */
  2418.             if (openFlag==0) {
  2419.                 systemError=0;
  2420.                 OpenLoad();
  2421.                 if (systemError==1) {
  2422.                     MessageBox(hwnd, "âüâéâèü[é¬æ½éΦé▄é╣é±üI æ╝é╠âAâvâèâPü[âVâçâôé≡\nÅIù╣é│é╣éΘé╚é╟é╡é─Å\ò¬é╚âüâéâèé≡èmò█é╡é─é⌐éτ\nì─ôxùºé┐Åπé░é─é¡é╛é│éó", "îxìÉ", MB_ICONEXCLAMATION|MB_OK);
  2423.                     SendMessage(hwnd, WM_CLOSE, 0 ,0L);
  2424.                     return 0;
  2425.                 }
  2426.                 Ginit();
  2427.                 OpenPut2(hdc);
  2428. /*                SetTimer(hwnd,ID_DISPTIME,5000,lpfnWndpDlgProc);  */
  2429.                 openFlag=1;
  2430.                 SoundSetUp();
  2431.                 MusicPlay(hwnd,0);
  2432.                 hSubMenu=GetSubMenu(hMenu,1);
  2433.                 CheckMenuItem(hSubMenu, IDM_SEOFF, MF_ENABLED);
  2434.                 CheckMenuItem(hSubMenu, IDM_SEON , MF_CHECKED);
  2435.                 seFlag=1;
  2436.                 EndPaint (hwnd, &ps) ;
  2437.                 break;
  2438.             }
  2439.  
  2440.             switch (eFlag.tern) {
  2441.                 case IC_FIRST:
  2442. /*                    âüâjâàü[ìÇû┌é╠É▌ÆΦìsô«âüâjâàü[é╠òòê≤    */
  2443.                     MenuControl(2, MF_GRAYED);
  2444. /*                    âüâjâàü[éPÅëè·É▌ÆΦé≡âtâèü[âY    */
  2445.                     hSubMenu=GetSubMenu(hMenu,1);
  2446.                     EnableMenuItem(hSubMenu, IDM_INIT, MF_ENABLED);
  2447.                     if (openFlag==1&&meijin!=1) {
  2448.                         OpenPut2(hdc);
  2449.                     }
  2450.                     break;
  2451.                 case IC_PLAYERSEL: /* âLâââëâNâ^ü[æIæ≡îπ */
  2452.                     InvalidateRect(hWnd, NULL, TRUE);
  2453.                     break;                    
  2454.                 case IC_KYOKU: /* éPï╟Æå */
  2455.                     if (eFlag.act==AC_MOUSE||eFlag.act==AC_DEVIDE||eFlag.act==AC_STOP) {
  2456.                         for ( i = 0; i < 4; i++ ) {
  2457.                             put_alltehai(i);                /* graphics */
  2458.                         }
  2459.                         display_dora();
  2460.                         display_sai();
  2461.                         disp_naki();
  2462.                         display_hyochar(Siba,reaStick);
  2463.                         display_bahyoji();
  2464.                         display_stehai();
  2465.                         Display_reach_b();
  2466.                         if (jumpFlag!=J_USR_STEHAI&&(eFlag.act==AC_MOUSE||eFlag.act==AC_STOP))
  2467.                             if (jumpFlag!=J_ASK_SUB_RTK)
  2468.                                    flush_stehai(NewID,0);
  2469.                         if ((eFlag.act==AC_MOUSE||eFlag.act==AC_STOP)&&jumpFlag==J_USR_STEHAI) {
  2470.                             indicate_hai(Hp);
  2471.                             break;
  2472.                         }
  2473.                         if ((eFlag.act==AC_MOUSE||eFlag.act==AC_STOP)&&jumpFlag!=J_USR_STEHAI&&CheckCont!=256) {
  2474.                             dispose_gind();
  2475.                             display_gind(CPK_point);
  2476.                             break;
  2477.                         }
  2478.                     }
  2479.             }
  2480.             EndPaint (hwnd, &ps) ;
  2481.             return 0;
  2482.         case WM_TIMER:
  2483.             if (eFlag.act==AC_DEVIDE)
  2484.                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  2485.             if (eFlag.tern==IC_HANEND)
  2486.                 PostMessage(hwnd, WM_USER+103, 0, 0L);
  2487.             break;
  2488.         case WM_KILLFOCUS:
  2489.             eaBak2=eFlag.act;
  2490.             eFlag.act=AC_STOP;
  2491.             break;
  2492.         case WM_SETFOCUS:
  2493.             eFlag.act=eaBak2;
  2494.             SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2495.             break;
  2496.         case WM_SIZE:
  2497.             if (eFlag.tern==IC_FIRST&&eFlag.act==AC_DEFAULT) {
  2498.                 if (wParam!=SIZE_MINIMIZED) {
  2499.                     SetWindowPos(hwnd, (HWND)NULL, 0, 0,
  2500.                                 540, 400+GetSystemMetrics(SM_CYMENU)+GetSystemMetrics(SM_CYCAPTION),
  2501.                                 SWP_NOMOVE|SWP_NOZORDER);
  2502.                 }
  2503.             }
  2504.             if (wParam==SIZE_MINIMIZED&&eFlag.act==AC_DEVIDE) {
  2505.                 eFlag.act=AC_ICONSIZE;
  2506.             } else if (eFlag.proc==CC_KANSEN) {
  2507.                 eFlag.act=AC_DEVIDE;
  2508.             }
  2509.             break;
  2510. /*        case WM_USER+104:
  2511.             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2512.             if (eFlag.proc==CC_KANSEN&&eFlag.act==AC_DEVIDE)
  2513.                 SetTimer(hwnd,ID_DISPTIME,100,lpfnWndpDlgProc);
  2514.             break;    */
  2515.         case WM_USER+103:
  2516.             if (eFlag.tern==IC_FIRST)
  2517.                 break;
  2518.             if (eFlag.tern!=IC_HANEND) {
  2519.                 display_dora();
  2520.                 display_sai();
  2521.                 display_hyochar(Siba,reaStick);
  2522.                 display_bahyoji();
  2523.                 Display_reach_b();
  2524.                 hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2525.                 if (jumpFlag!=J_USR_STEHAI&&NewID == USRNO ) {
  2526.                     CreateNakiMenu(lParam);
  2527.                     KillPopMenu();
  2528.                 }
  2529.  
  2530.             }
  2531.             if (eFlag.tern==IC_HANEND) {
  2532.  
  2533.                 if (eFlag.proc==CC_KACHI) {
  2534.                     a = get_topman();
  2535.                     if ( men[a].rank > b && meijin==0) {
  2536.                         b = men[a].rank - 1;
  2537.                         for ( i = 0; i < 17; ++i ) {
  2538.                             if ( men[i].rank == b ) {
  2539.                                 men[i].rank++;
  2540.                                 break;
  2541.                             }
  2542.                         }
  2543.                         men[a].rank--;
  2544.                         save_all_man();
  2545.                         MusicClose();
  2546.                         MusicPlay(hwnd,0);
  2547.                     } else if ( a == Member[3].men && men[a].rank == 1 ) {
  2548.                         b = 0;
  2549.                         c = 0;
  2550.                         meijin=1;
  2551.                         save_all_man();
  2552.                         for ( i = 0; i < 17; i++ ) {
  2553.                             if ( (a != i) && (men[i].rank >= b) && (men[i].rank < b+4) ) {
  2554.                                 Member[c].men = i;
  2555.                                 eErr=Wload(men[i].network,c++);
  2556.                             }
  2557.                         }
  2558.                         Display_Option = 2;
  2559.                         eFlag.tern=IC_PLAYERSEL;
  2560.                         eFlag.proc=CC_KACHI;
  2561.                         DialogBox(hDlgInstance, "KachiProf", hwnd, (DLGPROC)lpfnKatiDlgProc);
  2562.                         MenuControl(1,1);
  2563.                         strcpy(dispMessage,"û╝ Él Éφ");
  2564.                         DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  2565. /*                        âüâjâàü[éOîQé≡âuâìâbâN    */
  2566.                         MenuControl(0, MF_GRAYED);
  2567. /*                        âüâjâàü[éQîQé≡âAâNâeâBâuë╗    */
  2568.                         MenuControl(2, MF_ENABLED);
  2569.                         InvalidateRect(hWnd, NULL, TRUE);
  2570.                         hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2571. /*                        if (jumpFlag!=J_USR_STEHAI&&NewID == USRNO ) {
  2572.                             CreateNakiMenu(lParam);
  2573.                             KillPopMenu();
  2574.                         }
  2575. */
  2576.                         meijin=0;
  2577.                         SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2578.                         break;
  2579.                     }
  2580.                 }
  2581.                 if (eFlag.proc==CC_KAKE) {
  2582.                     for ( i = 0; i < 4; i++ ) {
  2583.                         men[Member[i].men].money += last_sc[i]*a;
  2584.                     }
  2585.                     save_all_man();
  2586.                 }
  2587.  
  2588.                 eFlag.tern=IC_FIRST;
  2589.                 openFlag=1;
  2590.                 MusicClose();
  2591.                 MusicPlay(hwnd,0);
  2592.                 InvalidateRect(hWnd, NULL, TRUE);
  2593.                 meijin=0;
  2594.                 break;
  2595. /*                é╗é╠æ╝üAÅëè·ë╗Åêù¥    */
  2596.             }
  2597.  
  2598.             SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2599.             return 0;
  2600.         case WM_MOUSEMOVE:
  2601.             curFlag=TRUE;
  2602.             xPos = LOWORD(lParam); /* â}âEâXâJü[â\âïé╠Éàò╜ê╩Æu */
  2603.             yPos = HIWORD(lParam); /* â}âEâXâJü[â\âïé╠ÉéÆ╝ê╩Æu */
  2604.             if (eFlag.act==AC_MOUSE) {
  2605.                 if (ysClip<yPos&&yeClip>yPos&&xsClip<xPos&&xeClip>xPos) {
  2606.                     if (jumpFlag==J_USR_STEHAI||(jumpFlag==J_ASK_SUB_RTK&&CheckCont!=IDM_KAN&&NewID==USRNO)) { 
  2607.  
  2608. /*                    if (jumpFlag==J_USR_STEHAI||CheckCont==IDM_REA) { 
  2609.  
  2610. */                        hpbak=Hp;
  2611.                         Hp=(xPos-base_x[SHITA]-1)/hai_w[SHITA];
  2612.                         if (Hp<=Co) {
  2613. /*                            âJü[â\âïé╠ò╧ìX    */
  2614.                             curFlag=FALSE;
  2615.                             if (curBak!=FALSE) {
  2616.                                 SetCursor(winCursor[3]);
  2617.                                 ShowCursor(TRUE);
  2618.                                 curBak=FALSE;
  2619.                             }
  2620.                             if (Hp!=hpbak) {
  2621.                                 unindicate_hai(hpbak);
  2622.                                 indicate_hai(Hp);
  2623.                             }
  2624.                         }
  2625.                     } else {
  2626.                         if (jumpFlag==J_ASK_SUB_RTK) {
  2627.                             if (CheckCont==IDM_KAN) {
  2628.                                 nakiPoint=(xPos-base_x[SHITA])/hai_w[SHITA];
  2629.                                 if (nakiPoint!=nakiBak) {
  2630.                                     nakiSmall=14;
  2631.                                     nakiLarge=0;
  2632.                                     for (i=0 ; i<7 ; i++) {
  2633.                                         nakiPool=0;
  2634.                                         for (j=0 ; j<4 ; j++)
  2635.                                             nakiPool+=ind_group[i][j];
  2636.                                         if (nakiPool==0)
  2637.                                             break;
  2638.                                         for (j=0 ; j<4 ; j++) {
  2639.                                                if (nakiSmall>ind_group[i][j]&&ind_group[i][j]!=-1)
  2640.                                                 nakiSmall=ind_group[i][j];
  2641.                                             if (nakiLarge<ind_group[i][j]&&ind_group[i][j]!=-1)
  2642.                                                 nakiLarge=ind_group[i][j];
  2643.                                         }
  2644.                                     }
  2645.                                     if (nakiPoint>=nakiSmall&&nakiPoint<=nakiLarge) {
  2646. /*                                        âJü[â\âïé╠ò╧ìX    */
  2647.                                         curFlag=FALSE;
  2648.                                         if (curBak!=FALSE) {
  2649.                                             SetCursor(winCursor[3]);
  2650.                                             ShowCursor(TRUE);
  2651.                                             curBak=FALSE;
  2652.                                         }
  2653.                                         if (nakiPoint>nakiBak) {
  2654.                                             right_gind(RTK_point);
  2655.                                         } else if (nakiPoint<nakiBak) {
  2656.                                             left_gind(RTK_point);
  2657.                                         }
  2658.                                     }
  2659.                                     dispose_gind();
  2660.                                     display_gind(RTK_point);
  2661.                                     nakiBak=nakiPoint;
  2662.                                 }
  2663.                             }
  2664.                         } else {
  2665.                             if (CheckCont!=256) {
  2666.                                 nakiPoint=(xPos-base_x[SHITA])/hai_w[SHITA];
  2667.                                 if (nakiPoint!=nakiBak) {
  2668.                                     nakiSmall=14;
  2669.                                     nakiLarge=0;
  2670.                                     for (i=0 ; i<7 ; i++) {
  2671.                                         nakiPool=0;
  2672.                                         for (j=0 ; j<4 ; j++)
  2673.                                             if (ind_group[i][j]!=-1)
  2674.                                                 nakiPool+=ind_group[i][j];
  2675.                                         if (nakiPool==0)
  2676.                                             break;
  2677.                                         for (j=0 ; j<gind_cnt[CPK_point] ; j++) {
  2678.                                                if (nakiSmall>ind_group[i][j]&&ind_group[i][j]!=-1)
  2679.                                                 nakiSmall=ind_group[i][j];
  2680.                                             if (nakiLarge<ind_group[i][j]&&ind_group[i][j]!=-1)
  2681.                                                 nakiLarge=ind_group[i][j];
  2682.                                         }
  2683.                                     }
  2684.                                     for (i=0 ; i<4 ; i++) {
  2685.                                         if (nakiMarks[i]!=0) {
  2686.                                             nakiSm=nakiMarks[i];
  2687.                                             break;
  2688.                                         }
  2689.                                     }
  2690.                                     for (i=3 ; i>=0 ; i--) {
  2691.                                         if (nakiMarks[i]!=0) {
  2692.                                             nakiLa=nakiMarks[i];
  2693.                                             break;
  2694.                                         }
  2695.                                     }
  2696.                                     if (nakiPoint>=nakiSmall&&nakiPoint<=nakiLarge) {
  2697. /*                                        âJü[â\âïé╠ò╧ìX    */
  2698.                                         curFlag=FALSE;
  2699.                                         if (curBak!=FALSE) {
  2700.                                             SetCursor(winCursor[3]);
  2701.                                             ShowCursor(TRUE);
  2702.                                             curBak=FALSE;
  2703.                                         }
  2704.                                         if (nakiPoint>nakiBak&&nakiLa<nakiLarge) {
  2705.                                             right_gind(CPK_point);
  2706.                                         } else if (nakiPoint<nakiBak&&nakiSm>nakiSmall) {
  2707.                                             left_gind(CPK_point);
  2708.                                         }
  2709.                                         dispose_gind();
  2710.                                         display_gind(CPK_point);
  2711.                                         nakiBak=nakiPoint;
  2712.                                     }
  2713.                                 }
  2714.                             }
  2715.                         }
  2716.                     }
  2717.                 }
  2718.             }
  2719.             if (curFlag==TRUE) {
  2720.                 if (curBak!=TRUE) {
  2721.                     SetCursor(winCursor[1]);
  2722.                     ShowCursor(TRUE);
  2723.                     curBak=TRUE;
  2724.                 }
  2725.             }
  2726.             break;
  2727.         case WM_RBUTTONDOWN:
  2728.             if (eFlag.proc==CC_KANSEN&&eFlag.act==AC_DEVIDE)
  2729.                 break;
  2730.             if (jumpFlag==J_ASK_SUB_RTK||jumpFlag==J_ASK_SUB_CPKR1||jumpFlag==J_ASK_SUB_CPKR2) {
  2731.                 CreateNakiMenu(lParam);
  2732.                 KillPopMenu();
  2733.             }
  2734.             break;
  2735. /*        case WM_RBUTTONUP:
  2736.             if (eFlag.proc==CC_KANSEN&&eFlag.act==AC_DEVIDE)
  2737.                 break;
  2738.             if (jumpFlag==J_ASK_SUB_RTK||jumpFlag==J_ASK_SUB_CPKR1||jumpFlag==J_ASK_SUB_CPKR2) {
  2739.             }
  2740.             break;    */
  2741.         case WM_KEYUP:
  2742. /*            sprintf(msg,"key=[%d]",wParam);
  2743.             MessageBox(hwnd, msg,"KEY", MB_ICONEXCLAMATION|MB_OK); */
  2744.             if (wParam!=0x0d)
  2745.                 break;
  2746.         case WM_LBUTTONUP:
  2747.             if (eFlag.proc==CC_KANSEN&&eFlag.act==AC_DEVIDE)
  2748.                 break;
  2749.             clFlag=0;
  2750. /*            xPos = LOWORD(lParam);  â}âEâXâJü[â\âïé╠Éàò╜ê╩Æu */
  2751. /*            yPos = HIWORD(lParam);  â}âEâXâJü[â\âïé╠ÉéÆ╝ê╩Æu */
  2752.             if (jumpFlag==J_ASK_SUB_RTK) {
  2753.                 if (ysClip>yPos||yeClip<yPos)
  2754.                     break;
  2755.                 else if (xsClip>xPos||xeClip<xPos)
  2756.                     break;
  2757.             }
  2758.             if (jumpFlag==J_USR_STEHAI||CheckCont==IDM_REA) {
  2759.                 if (ysClip<yPos&&yeClip>yPos) {
  2760.                     if (xsClip<xPos&&xeClip>xPos) {
  2761.                         CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2762.                         CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2763.                         CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2764.                         CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2765.                         CheckMenuItem(hSubMenu, CheckCont,MF_BYCOMMAND|MF_UNCHECKED);
  2766.                         hpbak=Hp;
  2767.                         Hp=(xPos-base_x[SHITA])/hai_w[SHITA];
  2768.                         clFlag=1;
  2769.                         if (reaSteFlag>1) {
  2770.                             Hp=TP[3].Tcn;
  2771.                         } else if (Hp>Co) {
  2772.                             break;
  2773.                         }
  2774.                         if (Hp<=Co) {
  2775.                             unindicate_hai(hpbak);
  2776.                         }
  2777.                     }
  2778.                 }
  2779.             } else if (jumpFlag==J_ASK_SUB_RTK||jumpFlag==J_ASK_SUB_CPKR1||jumpFlag==J_ASK_SUB_CPKR2) {
  2780.                 dispose_gind();
  2781.                 clFlag=1;
  2782.                 if (Hp>Co) {
  2783.                     Hp=TP[3].Tcn;
  2784.                 }
  2785.             } else {
  2786.                 break;
  2787.             }
  2788.             if (clFlag==0)
  2789.                 break;
  2790.             CheckCont=256;
  2791. /*            övé╠Éöé╛é»Å┴é╡é┐éßé┴é╜éΦé╖éΘé╝âïü[â`âôé═é│é▌ÅΩÅè    */
  2792.             ClearGomi(TP[3].Tcn+1);
  2793.             switch (eFlag.proc) {
  2794.                 case CC_KACHI:
  2795. /*                    hanchan(hwnd,WM_LBUTTONUP,eFlag.tern,eFlag.proc);
  2796.                     if (eFlag.tern==IC_HANEND) {
  2797.                         eFlag.tern=IC_FIRST;
  2798.                         a = get_topman();
  2799.                         if ( men[a].rank > b ) {
  2800.                             b = men[a].rank - 1;
  2801.                             for ( i = 0; i < 17; ++i ) {
  2802.                                 if ( men[i].rank == b ) {
  2803.                                     men[i].rank++;
  2804.                                     break;
  2805.                                 }
  2806.                             }
  2807.                             men[a].rank--;
  2808.                             save_all_man();
  2809.                             openFlag=1;
  2810.                             MusicClose();
  2811.                             MusicPlay(hwnd,0);
  2812.                             InvalidateRect(hWnd, NULL, TRUE);
  2813.                             meijin=0;
  2814.                         } else if ( a == Member[3].men && men[a].rank == 1 ) {
  2815.                             b = 0;
  2816.                             c = 0;
  2817.                             meijin=1;
  2818.                             save_all_man();
  2819.                             for ( i = 0; i < 17; i++ ) {
  2820.                                 if ( (a != i) && (men[i].rank >= b) && (men[i].rank < b+4) ) {
  2821.                                     Member[c].men = i;
  2822.                                     eErr=Wload(men[i].network,c++);
  2823.                                 }
  2824.                             }
  2825.                             Display_Option = 2;
  2826.                             if (!DialogBox(hDlgInstance, "KachiProf", hwnd, (DLGPROC)lpfnKatiDlgProc)) {
  2827.                                 return 0;
  2828.                             }
  2829.                             eFlag.tern=IC_PLAYERSEL;
  2830.                             eFlag.proc=CC_KACHI;
  2831.                             MenuControl(1,1);
  2832.                             strcpy(dispMessage,"û╝ Él Éφ");
  2833.                             DialogBox(hDlgInstance, "MessageDisplay", hWnd, (DLGPROC)lpfnMesdDlgProc);
  2834.                         âüâjâàü[éOîQé≡âuâìâbâN    
  2835.                             MenuControl(0, MF_GRAYED);
  2836.                         âüâjâàü[éQîQé≡âAâNâeâBâuë╗    
  2837.                             MenuControl(2, MF_ENABLED);
  2838.                             InvalidateRect(hWnd, NULL, TRUE);
  2839.                             hanchan(hwnd,WM_PAINT,eFlag.tern,eFlag.proc);
  2840.                             SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2841.                             break;
  2842.                         } else {
  2843.                             openFlag=1;
  2844.                             MusicClose();
  2845.                             MusicPlay(hwnd,0);
  2846.                             InvalidateRect(hWnd, NULL, TRUE);
  2847.                             meijin=0;
  2848.                         }
  2849.                     } else {
  2850.                         SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2851.                     }
  2852. */
  2853.                     PostMessage(hwnd, WM_USER+103, 0, 0L);
  2854.                     break;
  2855.                 case CC_KAKE:
  2856.                     hanchan(hwnd,WM_LBUTTONUP,eFlag.tern,eFlag.proc);
  2857.                     if (eFlag.tern==IC_HANEND) {
  2858.                         for ( i = 0; i < 4; i++ ) {
  2859.                             men[Member[i].men].money += last_sc[i]*a;
  2860.                         }
  2861.                         eFlag.tern=IC_FIRST;
  2862.                         save_all_man();
  2863.                         openFlag=1;
  2864.                         MusicClose();
  2865.                         MusicPlay(hwnd,0);
  2866. /*                        é╗é╠æ╝üAÅëè·ë╗Åêù¥    */
  2867.                     } else {
  2868.                         SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2869.                     }
  2870.                     break;
  2871.                 case CC_FREE:
  2872.                     hanchan(hwnd,WM_LBUTTONUP,eFlag.tern,eFlag.proc);
  2873.                     if (eFlag.tern==IC_HANEND) {
  2874.                         eFlag.tern=IC_FIRST;
  2875. /*                        é╗é╠æ╝üAÅëè·ë╗Åêù¥    */
  2876.                         save_all_man();
  2877.                         openFlag=1;
  2878.                         MusicClose();
  2879.                         MusicPlay(hwnd,0);
  2880.                     } else {
  2881.                         SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2882.                     }
  2883.                     break;
  2884.                 case CC_KANSEN:
  2885.                     hanchan(hwnd,WM_LBUTTONUP,eFlag.tern,eFlag.proc);
  2886.                     if (eFlag.tern==IC_HANEND) {
  2887.                         eFlag.tern=IC_FIRST;
  2888.                         mastNo=255;
  2889. /*                        é╗é╠æ╝üAÅëè·ë╗Åêù¥    */
  2890.                         openFlag=1;
  2891.                         MusicClose();
  2892.                         MusicPlay(hwnd,0);
  2893.                     }
  2894.                     break;
  2895.                 case CC_SHINAN:
  2896.                     hanchan(hwnd,WM_LBUTTONUP,eFlag.tern,eFlag.proc);
  2897.                     if (eFlag.tern==IC_HANEND) {
  2898.                         eFlag.tern=IC_FIRST;
  2899.                         eErr=Wload(men[Member[3].men].network,3);
  2900.                         Sinan_mode = FALSE;
  2901.                         mastNo=255;
  2902. /*                        é╗é╠æ╝üAÅëè·ë╗Åêù¥    */
  2903.                         openFlag=1;
  2904.                         MusicClose();
  2905.                         MusicPlay(hwnd,0);
  2906.                     } else {
  2907.                         SetTimer(hwnd,ID_DISPTIME,gSpeed,lpfnWndpDlgProc);
  2908.                     }
  2909.             }
  2910.             break;
  2911.         case WM_DESTROY:
  2912.             if (systemError==0) {
  2913.                 CloseHai();
  2914.                 OpenDelete();
  2915.             }
  2916.             MusicClose();
  2917.             PostQuitMessage(0) ;
  2918.             return 0 ;
  2919.     }
  2920.     return DefWindowProc (hwnd, message, wParam, lParam) ;
  2921. }
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935. /*
  2936. static int utility(void)
  2937. {
  2938.     int t;
  2939.     int a;
  2940.     int st = 0;
  2941.     int st2 = 0;
  2942.     int dsk_flg;
  2943.  
  2944.     setcolor_menu(BLACK);
  2945.     init_menu(&menu5);
  2946.     open_menu(&menu5,350,280);
  2947.     a = get_term_menu();
  2948.     close_menu();
  2949.     setcolor_menu(DARK_BLUE);
  2950.     switch ( a ) {
  2951.     case 1:
  2952.     setcolor_menu(BLACK);
  2953.     display_message_xy(FMT_MSG,3,33,308,BLACK);
  2954.     init_menu(&menuyn);
  2955.     open_menu(&menuyn,63*8,364);
  2956.     do {
  2957.         t = get_term_menu();
  2958.     } while ( t < 0 );
  2959.     close_menu();
  2960.     dispose_message();
  2961.     if ( t ) {
  2962.         st2 = init_member_data(1);
  2963.     }
  2964.     setcolor_menu(DARK_BLUE);
  2965.     break;
  2966.     case 2:
  2967.      ô]æùé`üäéa 
  2968.     display_message_xy(TR_AB_MSG,3,30,300,BLACK);
  2969.     while ( get_stick() == 0 )
  2970.         ;
  2971.     dispose_message();
  2972.     st = pick_member(0);
  2973.     if ( st > 0 ) {
  2974.         st2 = trans_member(1);
  2975.     }
  2976.     if ( st == -1 ) {
  2977.         st = 0;
  2978.         st2 = -1;
  2979.     } else {
  2980.         st = 1;
  2981.     }
  2982.     break;
  2983.     case 3:
  2984.      ô]æùéaüäé` 
  2985.     display_message_xy(TR_BA_MSG,3,30,300,BLACK);
  2986.     while ( get_stick() == 0 )
  2987.         ;
  2988.     dispose_message();
  2989.     st = pick_member(1);
  2990.     if ( st > 0 ) {
  2991.         st2 = trans_member(0);
  2992.     }
  2993.     if ( st == -1 ) {
  2994.         st = 0;
  2995.         st2 = -1;
  2996.     } else {
  2997.         st = 1;
  2998.     }
  2999.     break;
  3000.     }
  3001.     setcolor_menu(BLACK);
  3002.     if ( st2 == -1 ) {
  3003.     display_message_xy(CANSEL_MSG,2,33,308,BLACK);
  3004.     while ( get_stick() == 0 )
  3005.         ;
  3006.     dispose_message();
  3007.     }
  3008.     dsk_flg = 0;
  3009.     while ( !load_all_man(1) ) {
  3010.     get_stick();
  3011.     if ( !dsk_flg ) {
  3012.         display_message_xy(SET_DSK_MSG,2,33,308,BLACK);
  3013.     }
  3014.     dsk_flg = 1;
  3015.     }
  3016.     if ( dsk_flg ) {
  3017.     dispose_message();
  3018.     }
  3019.     setcolor_menu(DARK_BLUE);
  3020.     a = Member[3].men;
  3021.     Wload(men[a].network,3);
  3022.     return st;
  3023. }
  3024. */
  3025.  
  3026. BOOL FAR PASCAL _export    InitDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3027. {
  3028.     lParam++;
  3029.     lParam--;
  3030.  
  3031.     switch (message) {
  3032.         case WM_INITDIALOG :
  3033. /*            âJü[â\âïé╠ò╧ìX    */
  3034.             SetCursor(winCursor[1]);
  3035.             ShowCursor(TRUE);
  3036.             return FALSE;
  3037.         case WM_COMMAND :
  3038.             switch (wParam) {
  3039.                 case EXEC_FUNC_B:
  3040.                     if (IsDlgButtonChecked(hDlg, CHG_PLAYER_R)!=0)
  3041.                         DialogBox(hDlgInstance, "ChangePlayer", hDlg, (DLGPROC)lpfnChgpDlgProc);
  3042.                     if (IsDlgButtonChecked(hDlg, CHG_NAME_R)!=0)
  3043.                         DialogBox(hDlgInstance, "ChangeName", hDlg, (DLGPROC)lpfnChgnDlgProc);
  3044.                     if (IsDlgButtonChecked(hDlg, INP_CHAR_R)!=0)
  3045.                         DialogBox(hDlgInstance, "CharEntry", hDlg, (DLGPROC)lpfnChrEDlgProc);
  3046.                     if (IsDlgButtonChecked(hDlg, SEL_UTL_R)!=0)
  3047.                         DialogBox(hDlgInstance, "Utility", hDlg, (DLGPROC)lpfnUtilDlgProc);
  3048.                     return 0;
  3049.                 case INIT_RET:
  3050.                     EndDialog(hDlg, TRUE);
  3051.                     return 0;
  3052.             }
  3053.             break;
  3054.     }
  3055.     return FALSE;
  3056. }
  3057.  
  3058. /* Åƒé┐ö▓é½ÉφùpâLâââëâNâ^ü[ò\Īâ_âCâAâìâO */
  3059. BOOL FAR PASCAL _export    KatiDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3060. {
  3061. int        i,j;
  3062. char    charName[32];
  3063. char    charMoney1[32];
  3064. char    charMoney2[32];
  3065. char    fileName[20];
  3066. char   *filePoint;
  3067. static char   *fileBuffer;
  3068. static FILE   *fp;
  3069. long    fileSize;
  3070. /*HDC        dlgHdc;*/
  3071.  
  3072.     switch (message) {
  3073.         case WM_INITDIALOG :
  3074. /*            SetTimer(hDlg,ID_DISPTIME,20000,lpfnKatiDlgProc);    */
  3075. /*            âJü[â\âïé╠ò╧ìX    */
  3076.             SetCursor(winCursor[1]);
  3077.             ShowCursor(TRUE);
  3078.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  3079.             break;
  3080.         case WM_USER+105:
  3081.             SetCapture(hDlg);
  3082.             break;
  3083.         case WM_PAINT:
  3084.             for (j=0 ; j<3 ; j++) {
  3085.                 memset(charName,0x00,32);
  3086.                 strcpy(charName,men[Member[j].men].name);
  3087.                 SetDlgItemText(hDlg, PROF_NAME1+j,charName);
  3088.                 if (men[Member[j].men].rank==0) {
  3089.                     strcpy(charName,"û╝Él");
  3090.                 } else {
  3091.                     itoa(men[Member[j].men].rank,charName,10);
  3092.                     strcat(charName,"ê╩");
  3093.                 }
  3094.                 SetDlgItemText(hDlg, RANK1+j,charName);
  3095.                 itoa(men[Member[j].men].money,charMoney2,10);
  3096.                 if (men[Member[j].men].money<0) {
  3097.                     strcpy(charMoney1,"ü|");
  3098.                     for (i=0 ; i<(int)(6-strlen(charMoney2)-1) ; i++)
  3099.                         strcat(charMoney1,"ü@");
  3100.                     for (i=0 ; i<(int)strlen(charMoney2)-1 ; i++) {
  3101.                         strcat(charMoney1,"éO");
  3102.                         charMoney1[strlen(charMoney1)-1]+=(char)(charMoney2[i+1]-0x30);
  3103.                     }
  3104.                 } else {
  3105.                     strcpy(charMoney1,"ü@");
  3106.                     for (i=0 ; i<(int)(6-strlen(charMoney2)) ; i++)
  3107.                         strcat(charMoney1,"ü@");
  3108.                     for (i=0 ; i<(int)strlen(charMoney2) ; i++) {
  3109.                         strcat(charMoney1,"éO");
  3110.                         charMoney1[strlen(charMoney1)-1]+=(char)(charMoney2[i]-0x30);
  3111.                     }
  3112.                 }
  3113.                 SetDlgItemText(hDlg, PROF_MONEY1+j,charMoney1);
  3114.                 strcpy(fileName,men[Member[j].men].network);
  3115.                 filePoint=strchr(fileName,'.');
  3116.                 strcpy(filePoint+1,"doc");
  3117.                 if ((fp=fopen(fileName,"rb"))!=NULL) {
  3118.                     fseek(fp,0,SEEK_END);
  3119.                     fileSize=ftell(fp);
  3120.                     fseek(fp,0,SEEK_SET);
  3121.                     fileBuffer=malloc((int)fileSize);
  3122.                     do {
  3123.                         fread(fileBuffer,1,1,fp);
  3124.                     } while(fileBuffer[0]!=0x0d);
  3125.                     fseek(fp,1,SEEK_CUR);
  3126.                     for (i=0 ; i<(int)fileSize ; i++) {
  3127.                         fread(&fileBuffer[i],1,1,fp);
  3128.                         switch (fileBuffer[i]) {
  3129.                             case 0x0d:
  3130.                                 fseek(fp,1,SEEK_CUR);
  3131.                                 fileBuffer[i]=0x00;
  3132.                                 i--;
  3133.                                 break;
  3134.                             case 0x0a:
  3135.                                 fileBuffer[i]=0x00;
  3136.                                 i--;
  3137.                                 break;
  3138.                             case 0x1a:
  3139.                                 fileBuffer[i]=0x00;
  3140.                                 i=420;
  3141.                                 break;
  3142.                         }
  3143.                     }
  3144.                     SetDlgItemText(hDlg, PROF_PROF1+j,fileBuffer);
  3145.                     fclose(fp);
  3146.                     free(fileBuffer);
  3147.                 }
  3148. /*                if (men[Member[j].men].mode!=0) {
  3149.                     dlgHdc=GetDC(hDlg);
  3150.                     Dfase_put_kachi(dlgHdc,Member[j].men,0,j);
  3151.                     ReleaseDC(hDlg,dlgHdc);
  3152.                 }
  3153. */
  3154.             }
  3155.             break;
  3156. /*        case WM_TIMER:
  3157.             EndDialog(hDlg, TRUE);
  3158.             break;
  3159. */
  3160.         case WM_NCLBUTTONUP:
  3161.             EndDialog(hDlg, TRUE);
  3162.             ReleaseCapture();
  3163.             return 0;
  3164.         case WM_LBUTTONUP:
  3165.             EndDialog(hDlg, TRUE);
  3166.             ReleaseCapture();
  3167.             break;
  3168.     }
  3169.     return FALSE;
  3170. }
  3171.  
  3172.  
  3173. /*    âLâââëâNâ^ü[æIæ≡â_âCâAâìâO    */
  3174. BOOL FAR PASCAL _export    CharDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3175. {
  3176.     PAINTSTRUCT            ps;
  3177.     UINT                i;
  3178.     static UINT            menCount;
  3179.     static int            drawCnt;
  3180.     static int            selNumber[4];
  3181.     DWORD                dwIndex;
  3182.     char                szBuf[21];
  3183.     static char            charName[21];
  3184.     static char           *cn[17];
  3185.     static int            rank[16];
  3186.     char                buffer[64];
  3187.     int                    me;
  3188.     static char            charMatrix[3][21];
  3189.     int                    cnt;
  3190.  
  3191.  
  3192.     switch (message) {
  3193.  
  3194.         case WM_INITDIALOG :
  3195. /*            âJü[â\âïé╠ò╧ìX    */
  3196.             SetCursor(winCursor[1]);
  3197.             ShowCursor(TRUE);
  3198.             menCount=0;
  3199.             SendDlgItemMessage(hDlg, CB_CHAR,
  3200.                                 LB_RESETCONTENT, 0, 0L);
  3201.             me = MenNamePull(cn);
  3202.             charName[20]=0x00;
  3203.             cnt=0;
  3204.             for (i=0;i<17 ; i++) {
  3205.                 if (me!=(int)i) {
  3206.                     rank[cnt]=pick_man_list[i];
  3207.                     cnt++;
  3208.                     memcpy(charName,cn[i],20);
  3209.                     dwIndex = SendDlgItemMessage(hDlg, CB_CHAR,
  3210.                         LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3211.                 }
  3212.             }
  3213.             memcpy(charName,cn[me],20);
  3214.             SendDlgItemMessage(hDlg, CB_SELCHAR,LB_ADDSTRING,0,
  3215.                                     (LPARAM) ((LPCSTR)charName));
  3216.             return FALSE;
  3217.         case WM_COMMAND :
  3218.             switch (wParam) {
  3219.                 case CB_CHAR:
  3220.                     if (HIWORD(lParam)==LBN_DBLCLK) {    /* â_âuâïâNâèâbâNÄ₧    */
  3221.                         if (menCount==3) {
  3222.                             /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3223.                             return TRUE;
  3224.                         }
  3225.                         dwIndex = SendDlgItemMessage(hDlg,
  3226.                                     CB_CHAR, LB_GETCURSEL, 0, 0);
  3227.                         if (dwIndex != LB_ERR) {
  3228.                             selectChar=rank[dwIndex];
  3229.                             SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3230.                                 (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3231.                             memset(charMatrix[menCount],0x00,20);
  3232.                             strcpy(charMatrix[menCount],szBuf);
  3233.                             for (i=0 ; i<menCount ; i++) {
  3234.                                 if (memcmp(charMatrix[i],charMatrix[menCount],20)==0) {
  3235.                                     return TRUE;
  3236.                                 }
  3237.                             }
  3238.                             if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3239.                                 break;
  3240.                             }
  3241.  
  3242.                     /*        ret=SendDlgItemMessage(hDlg,CB_SELCHAR,LB_GETSELITEMS,
  3243.                                                 17,(LPARAM) ((LPCSTR)selNumber)); */
  3244.                             Member[menCount].men = (int)rank[dwIndex];
  3245.                             Wload(men[dwIndex].network,menCount);
  3246.                             SendDlgItemMessage(hDlg,CB_SELCHAR,LB_ADDSTRING,
  3247.                                                 0,(LPARAM) ((LPCSTR)szBuf));
  3248.                             menCount++;
  3249.                         }
  3250.                     }
  3251.                     return TRUE;
  3252.                 case B_SELECT:
  3253.                     if (menCount==3) {
  3254.                         /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3255.                         return TRUE;
  3256.                     }
  3257.                     dwIndex = SendDlgItemMessage(hDlg,
  3258.                                 CB_CHAR, LB_GETCURSEL, 0, 0);
  3259.                     if (dwIndex != LB_ERR) {
  3260.                         selectChar=rank[dwIndex];
  3261.                         SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3262.                             (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3263.                         memset(charMatrix[menCount],0x00,20);
  3264.                         strcpy(charMatrix[menCount],szBuf);
  3265.                         for (i=0 ; i<menCount ; i++) {
  3266.                             if (memcmp(charMatrix[i],charMatrix[menCount],20)==0) {
  3267.                                 return TRUE;
  3268.                             }
  3269.                         }
  3270.                         if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3271.                             break;
  3272.                         }
  3273.  
  3274.                     /*    ret=SendDlgItemMessage(hDlg,CB_SELCHAR,LB_GETSELITEMS,
  3275.                                             17,(LPARAM) ((LPCSTR)selNumber));  */
  3276.                         Member[menCount].men = (int)rank[dwIndex];
  3277.                         Wload(men[dwIndex].network,menCount);
  3278.                         SendDlgItemMessage(hDlg,CB_SELCHAR,LB_ADDSTRING,
  3279.                                             0,(LPARAM) ((LPCSTR)szBuf));
  3280.                         menCount++;
  3281.                     } else {
  3282.                         sprintf(buffer, "âèâXâgâ{âbâNâXôαé╠ìÇû┌é¬æIæ≡é│éΩé─éóé▄é╣é±\0");
  3283.                         MessageBox(hDlg, buffer,
  3284.                             "WARNING", MB_ICONEXCLAMATION|MB_OK);
  3285.                     }
  3286.                     return TRUE;
  3287.                 case B_RETCHAR:
  3288.                     menCount=0;
  3289.                     EndDialog(hDlg, FALSE);
  3290.                     return FALSE;
  3291.                 case B_GOCHAR:
  3292.                     if (menCount==3) {
  3293.                         menCount=0;
  3294.                         EndDialog(hDlg, TRUE);
  3295.                     }
  3296.                     return TRUE;
  3297.             }
  3298.             break;
  3299.         case WM_PAINT :
  3300.             BeginPaint(hDlg, &ps);
  3301.             EndPaint(hDlg, &ps);
  3302.             break;
  3303.     }
  3304.     return FALSE;
  3305. }
  3306.  
  3307. /*    ÄtÅáæIæ≡â_âCâAâìâO    */
  3308. BOOL FAR PASCAL _export    MastDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3309. {
  3310.     PAINTSTRUCT            ps;
  3311.     UINT                i;
  3312.     static UINT            menCount;
  3313.     static int            drawCnt;
  3314.     static int            selNumber[4];
  3315.     DWORD                dwIndex;
  3316.     char                szBuf[21];
  3317.     static char            charName[21];
  3318.     static char           *cn[17];
  3319.     static int            rank[16];
  3320.     char                buffer[64];
  3321.     int                    me;
  3322.     int                    cnt;
  3323.     static int                mastMat[16];
  3324.  
  3325.     switch (message) {
  3326.  
  3327.         case WM_INITDIALOG :
  3328. /*            âJü[â\âïé╠ò╧ìX    */
  3329.             SetCursor(winCursor[1]);
  3330.             ShowCursor(TRUE);
  3331.             menCount=0;
  3332.             SendDlgItemMessage(hDlg, CB_CHAR,
  3333.                                 LB_RESETCONTENT, 0, 0L);
  3334.             me = MenNamePull(cn);
  3335.             memset(mastMat,0x00,32);
  3336.             charName[20]=0x00;
  3337.             cnt=0;
  3338.             for (i=0;i<17 ; i++) {
  3339.                 if (me!=(int)i) {
  3340.                     rank[cnt]=pick_man_list[i];
  3341.                     mastMat[cnt]=i;
  3342.                     cnt++;
  3343.                     memcpy(charName,cn[i],20);
  3344.                     dwIndex = SendDlgItemMessage(hDlg, CB_CHAR,
  3345.                         LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3346.                 }
  3347.             }
  3348.             mastNo=255;
  3349.             return FALSE;
  3350.         case WM_COMMAND :
  3351.             switch (wParam) {
  3352.                 case CB_CHAR:
  3353.                     if (HIWORD(lParam)==LBN_DBLCLK) {    /* â_âuâïâNâèâbâNÄ₧    */
  3354.                         if (menCount==1) {
  3355.                             /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3356.                             return TRUE;
  3357.                         }
  3358.                         dwIndex = SendDlgItemMessage(hDlg,
  3359.                                     CB_CHAR, LB_GETCURSEL, 0, 0);
  3360.                         if (dwIndex != LB_ERR) {
  3361.                             selectChar=rank[dwIndex];
  3362.                             SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3363.                                 (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3364.                             if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3365.                                 break;
  3366.                             }
  3367.                             Wload(men[dwIndex].network,3);
  3368.                             SetDlgItemText(hDlg, MAST_NAME, szBuf);
  3369.                             menCount++;
  3370.                             mastNo=(int)(mastMat[dwIndex]+0x20);
  3371.                         }
  3372.                     }
  3373.                     return TRUE;
  3374.                 case B_SELECT:
  3375.                     if (menCount==1) {
  3376.                         /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3377.                         return TRUE;
  3378.                     }
  3379.                     dwIndex = SendDlgItemMessage(hDlg,
  3380.                                 CB_CHAR, LB_GETCURSEL, 0, 0);
  3381.                     if (dwIndex != LB_ERR) {
  3382.                         selectChar=rank[dwIndex];
  3383.                         SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3384.                             (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3385.                         if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3386.                             break;
  3387.                         }
  3388.                         Wload(men[dwIndex].network,3);
  3389.                         SetDlgItemText(hDlg, MAST_NAME, szBuf);
  3390.                         menCount++;
  3391.                         mastNo=(int)(dwIndex+0x20);
  3392.                     } else {
  3393.                         sprintf(buffer, "âèâXâgâ{âbâNâXôαé╠ìÇû┌é¬æIæ≡é│éΩé─éóé▄é╣é±\0");
  3394.                         MessageBox(hDlg, buffer,
  3395.                             "WARNING", MB_ICONEXCLAMATION|MB_OK);
  3396.                     }
  3397.                     return TRUE;
  3398.                 case B_RETCHAR:
  3399.                     menCount=0;
  3400.                     EndDialog(hDlg, FALSE);
  3401.                     return FALSE;
  3402.                 case B_GOCHAR:
  3403.                     if (menCount==1) {
  3404.                         menCount=0;
  3405.                         EndDialog(hDlg, TRUE);
  3406.                     }
  3407.                     return TRUE;
  3408.             }
  3409.             break;
  3410.         case WM_PAINT :
  3411.             BeginPaint(hDlg, &ps);
  3412.             EndPaint(hDlg, &ps);
  3413.             break;
  3414.     }
  3415.     return FALSE;
  3416. }
  3417.  
  3418. /*    è╧Éφé┼é╠æèÄΦæIæ≡â_âCâAâìâO    */
  3419. BOOL FAR PASCAL _export    DekuDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3420. {
  3421.     PAINTSTRUCT            ps;
  3422.     UINT                i;
  3423.     static UINT            menCount;
  3424.     static int            drawCnt;
  3425.     static int            selNumber[4];
  3426.     DWORD                dwIndex;
  3427.     char                szBuf[21];
  3428.     static char            charName[21];
  3429.     static char           *cn[17];
  3430.     static int            rank[16];
  3431.     char                buffer[64];
  3432.     int                    me;
  3433.     static char            charMatrix[3][21];
  3434.     int                    cnt;
  3435.  
  3436.  
  3437.     switch (message) {
  3438.  
  3439.         case WM_INITDIALOG :
  3440.             menCount=0;
  3441. /*            âJü[â\âïé╠ò╧ìX    */
  3442.             SetCursor(winCursor[1]);
  3443.             ShowCursor(TRUE);
  3444.             SendDlgItemMessage(hDlg, CB_CHAR,
  3445.                                 LB_RESETCONTENT, 0, 0L);
  3446.             me = MenNamePull(cn);
  3447.             charName[20]=0x00;
  3448.             cnt=0;
  3449.             for (i=0;i<17 ; i++) {
  3450.                 if (me!=(int)i) {
  3451.                     if (mastNo-0x20!=(int)i) {
  3452.                         rank[cnt]=pick_man_list[i];
  3453.                         cnt++;
  3454.                         memcpy(charName,cn[i],20);
  3455.                         dwIndex = SendDlgItemMessage(hDlg, CB_CHAR,
  3456.                             LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3457.                     }
  3458.                 }
  3459.             }
  3460.             memcpy(charName,cn[me],20);
  3461.             SendDlgItemMessage(hDlg, CB_SELCHAR,LB_ADDSTRING,0,
  3462.                                     (LPARAM) ((LPCSTR)charName));
  3463.             return FALSE;
  3464.         case WM_COMMAND :
  3465.             switch (wParam) {
  3466.                 case CB_CHAR:
  3467.                     if (HIWORD(lParam)==LBN_DBLCLK) {    /* â_âuâïâNâèâbâNÄ₧    */
  3468.                         if (menCount==3) {
  3469.                             /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3470.                             return TRUE;
  3471.                         }
  3472.                         dwIndex = SendDlgItemMessage(hDlg,
  3473.                                     CB_CHAR, LB_GETCURSEL, 0, 0);
  3474.                         if (dwIndex != LB_ERR) {
  3475.                             selectChar=rank[dwIndex];
  3476.                             SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3477.                                 (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3478.                             memset(charMatrix[menCount],0x00,20);
  3479.                             strcpy(charMatrix[menCount],szBuf);
  3480.                             for (i=0 ; i<menCount ; i++) {
  3481.                                 if (memcmp(charMatrix[i],charMatrix[menCount],20)==0) {
  3482.                                     return TRUE;
  3483.                                 }
  3484.                             }
  3485.                             if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3486.                                 break;
  3487.                             }
  3488.  
  3489.                     /*        ret=SendDlgItemMessage(hDlg,CB_SELCHAR,LB_GETSELITEMS,
  3490.                                                 17,(LPARAM) ((LPCSTR)selNumber)); */
  3491.                             Member[menCount].men = (int)rank[dwIndex];
  3492.                             Wload(men[dwIndex].network,menCount);
  3493.                             SendDlgItemMessage(hDlg,CB_SELCHAR,LB_ADDSTRING,
  3494.                                                 0,(LPARAM) ((LPCSTR)szBuf));
  3495.                             menCount++;
  3496.                         }
  3497.                     }
  3498.                     return TRUE;
  3499.                 case B_SELECT:
  3500.                     if (menCount==3) {
  3501.                         /*    æSê⌡éªéτé±é╛Åêù¥    */;
  3502.                         return TRUE;
  3503.                     }
  3504.                     dwIndex = SendDlgItemMessage(hDlg,
  3505.                                 CB_CHAR, LB_GETCURSEL, 0, 0);
  3506.                     if (dwIndex != LB_ERR) {
  3507.                         selectChar=rank[dwIndex];
  3508.                         SendDlgItemMessage(hDlg, CB_CHAR,LB_GETTEXT,
  3509.                             (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  3510.                         memset(charMatrix[menCount],0x00,20);
  3511.                         strcpy(charMatrix[menCount],szBuf);
  3512.                         for (i=0 ; i<menCount ; i++) {
  3513.                             if (memcmp(charMatrix[i],charMatrix[menCount],20)==0) {
  3514.                                 return TRUE;
  3515.                             }
  3516.                         }
  3517.                         if (DialogBox(hDlgInstance, "ProfDialog", hDlg, (DLGPROC)lpfnProfDlgProc)) {
  3518.                             break;
  3519.                         }
  3520.  
  3521.                     /*    ret=SendDlgItemMessage(hDlg,CB_SELCHAR,LB_GETSELITEMS,
  3522.                                             17,(LPARAM) ((LPCSTR)selNumber));  */
  3523.                         Member[menCount].men = (int)rank[dwIndex];
  3524.                         Wload(men[dwIndex].network,menCount);
  3525.                         SendDlgItemMessage(hDlg,CB_SELCHAR,LB_ADDSTRING,
  3526.                                             0,(LPARAM) ((LPCSTR)szBuf));
  3527.                         menCount++;
  3528.                     } else {
  3529.                         sprintf(buffer, "âèâXâgâ{âbâNâXôαé╠ìÇû┌é¬æIæ≡é│éΩé─éóé▄é╣é±\0");
  3530.                         MessageBox(hDlg, buffer,
  3531.                             "WARNING", MB_ICONEXCLAMATION|MB_OK);
  3532.                     }
  3533.                     return TRUE;
  3534.                 case B_RETCHAR:
  3535.                     menCount=0;
  3536.                     EndDialog(hDlg, FALSE);
  3537.                     return FALSE;
  3538.                 case B_GOCHAR:
  3539.                     if (menCount==3) {
  3540.                         menCount=0;
  3541.                         EndDialog(hDlg, TRUE);
  3542.                     }
  3543.                     return TRUE;
  3544.             }
  3545.             break;
  3546.         case WM_PAINT :
  3547.             BeginPaint(hDlg, &ps);
  3548.             EndPaint(hDlg, &ps);
  3549.             break;
  3550.     }
  3551.     return FALSE;
  3552. }
  3553.  
  3554. static int    fddNo;
  3555.  
  3556. int    FileCopy(char *hddFile,char *fddFile)
  3557. {
  3558. int            fh1,fh2;
  3559. long        fileSize;
  3560. char       *readBuf;
  3561. OFSTRUCT    openBuf1,openBuf2;
  3562.  
  3563.     if ((fh1=OpenFile(hddFile,&openBuf1,OF_SHARE_DENY_READ))==HFILE_ERROR)
  3564.         return FALSE;
  3565.     if ((fh2=OpenFile(fddFile,&openBuf2,OF_SHARE_DENY_WRITE|OF_CREATE))==HFILE_ERROR)
  3566.         return FALSE;
  3567.     fileSize=_llseek(fh1,0L,2);
  3568.     readBuf=malloc((int)fileSize);
  3569.     _llseek(fh1,0L,0);
  3570.     _lread( fh1,readBuf,(UINT)fileSize);
  3571.     _lwrite(fh2,readBuf,(UINT)fileSize);
  3572.     _lclose(fh1);
  3573.     _lclose(fh2);
  3574.     free(readBuf);
  3575.     return TRUE;
  3576. }
  3577.  
  3578. int    InitCopy(char *hddFile,char *fddFile)
  3579. {
  3580. char    fddNetName[64];
  3581. char    fddDocName[64];
  3582. char   *point;
  3583. int        i;
  3584. HFILE    fh;
  3585. OFSTRUCT    openBuf;
  3586.  
  3587.     if ((fh=OpenFile(fddFile,&openBuf,OF_SHARE_EXCLUSIVE|OF_CREATE))==HFILE_ERROR)
  3588.         return FALSE;
  3589.     _lclose(fh);
  3590.     for (i=0 ; i<17 ; i++) {
  3591.         strcpy(fddNetName,fddFile);
  3592.         point=_mbsrchr(fddNetName,'\\');
  3593.         strcpy((char *)(point+1),men[i].network);
  3594.         if ((fh=OpenFile(fddNetName,&openBuf,OF_SHARE_EXCLUSIVE|OF_CREATE))==HFILE_ERROR)
  3595.             return FALSE;
  3596.         _lclose(fh);
  3597.  
  3598.         strcpy(fddDocName,fddNetName);
  3599.         point=_mbsrchr(fddDocName,'.');
  3600.         strcpy((char *)(point+1),"doc");
  3601.         if ((fh=OpenFile(fddDocName,&openBuf,OF_SHARE_EXCLUSIVE|OF_CREATE))==HFILE_ERROR)
  3602.             return FALSE;
  3603.         _lclose(fh);
  3604.     }
  3605.     return TRUE;
  3606. }
  3607.  
  3608.  
  3609. int    OneCharSave(int    charNo,char *hddFile,char *fddFile)
  3610. {
  3611. char    fddNetName[64];
  3612. char    hddDocName[64];
  3613. char    fddDocName[64];
  3614. char    oneCharBuf[40];
  3615. char   *point;
  3616. HFILE    fh;
  3617. OFSTRUCT    openBuf;
  3618. long    fileSize;
  3619. int        datCount;
  3620. char    datBuf[4];
  3621.  
  3622.     if ((fh=OpenFile(fddFile,&openBuf,OF_SHARE_EXCLUSIVE|OF_READWRITE))==HFILE_ERROR)
  3623.         return FALSE;
  3624.     fileSize=_llseek(fh,0L,2);
  3625.     if (fileSize>611) {
  3626.         _lclose(fh);
  3627.         return -3;
  3628.     }
  3629.     datCount=(int)(fileSize/36L);
  3630.     sprintf(oneCharBuf,"%12s %2d %6d %9s %1d",
  3631.         men[charNo].name,men[charNo].rank,men[charNo].money,
  3632.         men[charNo].network,men[charNo].mode);
  3633.     oneCharBuf[34]=0x0d;
  3634.     oneCharBuf[35]=0x0a;
  3635.     sprintf(datBuf,"%2.2d",datCount+1);
  3636.     if (datBuf[0]==' ')
  3637.         datBuf[0]='0';
  3638.     memcpy(&oneCharBuf[26],datBuf,2);
  3639.     _lwrite(fh,oneCharBuf,(UINT)36);
  3640.     _lclose(fh);
  3641.  
  3642.     strcpy(fddNetName,fddFile);
  3643.     point=_mbsrchr(fddNetName,'\\');
  3644.     strcpy((char *)(point+1),men[charNo].network);
  3645.     point=_mbsrchr(fddNetName,'.');
  3646.     memcpy((char *)(point-2),datBuf,2);
  3647.     if (FileCopy(men[charNo].network,fddNetName)!=TRUE)    {
  3648.         SetCursor(LoadCursor(hInst,IDC_ARROW));
  3649.         return FALSE;
  3650.     }
  3651.     strcpy(fddDocName,fddNetName);
  3652.     point=_mbsrchr(fddDocName,'.');
  3653.     strcpy((char *)(point+1),"doc");
  3654.     strcpy(hddDocName,men[charNo].network);
  3655.     point=_mbsrchr(hddDocName,'.');
  3656.     strcpy((char *)(point+1),"doc");
  3657.     if (FileCopy(hddDocName,fddDocName)!=TRUE) {
  3658.         SetCursor(LoadCursor(hInst,IDC_ARROW));
  3659.         return FALSE;
  3660.     }
  3661.     return TRUE;
  3662. }
  3663.  
  3664. static char            fddCharName[17][20];
  3665. static char            fddNetName[17][13];
  3666. static int            fdCnt;
  3667.  
  3668. int    FddCharSeek(char *fddFile)
  3669. {
  3670. int            fh1;
  3671. long        fileSize;
  3672. OFSTRUCT    openBuf1;
  3673. char       *readBuf;
  3674. char       *point;
  3675. int            i,j;
  3676. char        nameBuf[16];
  3677.  
  3678.     if ((fh1=OpenFile(fddFile,&openBuf1,OF_SHARE_DENY_READ))==HFILE_ERROR)
  3679.         return FALSE;
  3680.     fileSize=_llseek(fh1,0L,2);
  3681.     readBuf=malloc((int)fileSize);
  3682.     fdCnt=(int)(fileSize/36L);
  3683.     _llseek(fh1,0L,0);
  3684.     _lread( fh1,readBuf,(UINT)fileSize);
  3685.     _lclose(fh1);
  3686.     for (i=0 ; i<17 ; i++) {
  3687.         memset(fddCharName[i],0x00,20);
  3688.         memset( fddNetName[i],0x00,13);
  3689.     }
  3690.     for (i=0 ; i<fdCnt ; i++) {
  3691.         memset(nameBuf,0x00,16);
  3692.         memcpy(nameBuf,&readBuf[i*36],12);
  3693.         for (j=0 ; j<12 ; j++) {
  3694.             if (nameBuf[j]!=' ') {
  3695.                 point=(char *)&nameBuf[j];
  3696.                 break;
  3697.             }
  3698.         }
  3699.         strcpy(fddCharName[i],point);
  3700.         memcpy( fddNetName[i],&readBuf[i*36+23],9);
  3701.     }
  3702.     free(readBuf);
  3703.     return TRUE;
  3704. }
  3705.  
  3706. int    OneCharLoad(DWORD hddSel,DWORD fddSel,char *hddName)
  3707. {
  3708. int            fh1;
  3709. long        fileSize;
  3710. OFSTRUCT    openBuf1;
  3711. char        hddNet[16];
  3712. char        fddDoc[16];
  3713. char        hddDoc[16];
  3714. char        fddBuf[72];
  3715. char       *readBuf1;
  3716. char       *point;
  3717.  
  3718.     if ((fh1=OpenFile(hddName,&openBuf1,OF_SHARE_EXCLUSIVE|OF_READWRITE))==HFILE_ERROR)
  3719.         return FALSE;
  3720.     fileSize=_llseek(fh1,0L,2);
  3721.     readBuf1=malloc((int)fileSize);
  3722.     if (readBuf1==NULL) {
  3723.         _lclose(fh1);
  3724.         return FALSE;
  3725.     }
  3726.     _llseek(fh1,0L,0);
  3727.     _lread( fh1,readBuf1,(UINT)fileSize);
  3728.     memcpy(&readBuf1[4+36*hddSel],fddCharName[fddSel],strlen(fddCharName[fddSel]));
  3729.     memset(&readBuf1[4+36*hddSel+strlen(fddCharName[fddSel])],' ',12-strlen(fddCharName[fddSel]));
  3730.     memcpy(&readBuf1[4+36*hddSel+18],"1000",4);
  3731.     _llseek(fh1,0L,0);
  3732.     _lwrite(fh1,readBuf1,(UINT)fileSize);
  3733.     _lclose(fh1);
  3734.     sprintf(hddNet,"usr%2.2d.net",hddSel+1);
  3735.     sprintf(fddBuf,"%c:\\%s",'a'+fddNo,fddNetName[fddSel]);
  3736.     if (FileCopy(fddBuf,hddNet)!=TRUE) {
  3737.         free(readBuf1);
  3738.         return FALSE;
  3739.     }
  3740.     strcpy(fddDoc,fddBuf);
  3741.     strcpy(hddDoc,hddNet);
  3742.     point=_mbschr(hddDoc,'.');
  3743.     strcpy((char *)(point+1),"doc");
  3744.     point=_mbschr(fddDoc,'.');
  3745.     strcpy((char *)(point+1),"doc");
  3746.     if (FileCopy(fddDoc,hddDoc)!=TRUE) {
  3747.         free(readBuf1);
  3748.         return FALSE;
  3749.     }
  3750.     free(readBuf1);
  3751.     load_all_man(1);
  3752. }
  3753.  
  3754.  
  3755.  
  3756. BOOL FAR PASCAL _export    UtilDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  3757. {
  3758. static int            modeFlag;
  3759. int                    me;
  3760. char                charName[32];
  3761. char               *cn[17];
  3762. static int            rank[17];
  3763. int                    cnt;
  3764. int                    i/*,j*/;
  3765. DWORD                dwIndex;
  3766. DWORD                dwFdIndex;
  3767. static char            fddFileName[128];
  3768. static OFSTRUCT        openBuf1,openBuf2;
  3769. static HFILE        fh1,fh2;
  3770. static int            transCount;
  3771. static int            selectMatrix[17];
  3772. int                    flag,ret;
  3773.  
  3774.     switch (message) {
  3775.         case WM_INITDIALOG :
  3776. /*            âJü[â\âïé╠ò╧ìX    */
  3777.             SetCursor(winCursor[1]);
  3778.             ShowCursor(TRUE);
  3779.             modeFlag=0;
  3780.             transCount=0;
  3781.             memset(selectMatrix,0x00,34);
  3782.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  3783.             return FALSE;
  3784.         case WM_USER+105:
  3785. /*        âtâìâbâsü[ôⁿéΩé─é╦âüâbâZü[âW    */
  3786.             fddNo=256;
  3787.             DialogBox(hDlgInstance, "FddSelect", hDlg, (DLGPROC)lpfnFddsDlgProc);
  3788.             if (fddNo!=255) {
  3789.                 if (GetDriveType(fddNo)!=DRIVE_REMOVABLE) {
  3790.                     MessageBox(hDlg, "é▒é╠âhâëâCâué═âtâìâbâsü[âfâBâXâNâhâëâCâué┼é═éáéΦé▄é╣é±","WARNING", MB_ICONQUESTION|MB_OK);
  3791.                     return TRUE;
  3792.                 }
  3793.                 fddFileName[0]=(char)fddNo+'A';
  3794.                 fddFileName[1]=':';
  3795.                 fddFileName[2]='\\';
  3796.                 fddFileName[3]='\0';
  3797.                 strcat(fddFileName,"mansv.dat");
  3798. /*                éeécécôαâfü[â^é╠èmöF    */
  3799.                 if ((fh2=OpenFile(fddFileName,&openBuf2,OF_EXIST))==HFILE_ERROR) {
  3800.                     if (MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬æ╢ì▌é╡é▄é╣é±üBì∞ɼé╡é─éµéδé╡éóé┼é╖é⌐üH","éeécéc", MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
  3801.                         return TRUE;
  3802.                     if (InitCopy("mansv.dat",fddFileName)!=TRUE) {
  3803.                         MessageBox(hDlg,"âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc",MB_ICONEXCLAMATION|MB_OK);
  3804.                         EndDialog(hDlg, TRUE);
  3805.                         return TRUE;
  3806.                     }
  3807.                 }
  3808. /*                éeécécôαâfü[â^é╠ò\Ī    */
  3809.                 if (FddCharSeek(fddFileName)!=TRUE) {
  3810.                     MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬æ╢ì▌é╡é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  3811.                     EndDialog(hDlg, TRUE);
  3812.                     modeFlag=0;
  3813.                     return TRUE;
  3814.                 }
  3815.                 for (i=0;i<fdCnt ; i++) {
  3816.                     memcpy(charName,fddCharName[i],20);
  3817.                     dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  3818.                         LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3819.                 }
  3820.             }
  3821.  
  3822. /*            égécécôαæSâfü[â^é╠îƒì⌡ò\Ī    */
  3823.             me = MenNamePull(cn);
  3824.             charName[20]=0x00;
  3825.             cnt=0;
  3826.             for (i=0;i<17 ; i++) {
  3827.                 rank[cnt]=pick_man_list[i];
  3828.                 cnt++;
  3829.                 memcpy(charName,cn[i],20);
  3830.                 dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3831.                     LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3832.             }
  3833.  
  3834.             break;
  3835.         case WM_COMMAND :
  3836.             switch (wParam) {
  3837.                 case IDC_INIT:
  3838. /*                ü@üüüüé▄é╕é═âfü[â^Åëè·ë╗é⌐éτüüüü    */
  3839.                     if (MessageBox(hDlg, "û{ôûé╔éµéδé╡éóé┼é╖é⌐üH","âfü[â^Åëè·ë╗", MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
  3840.                         return TRUE;
  3841.                     if (init_member_data(1)==2)    {
  3842.                         MessageBox(hDlg, "Ńé┐ö▓é½Éφé¬ÅIù╣é╡é─éóé▄é╣é±é╠é┼Åëè·ë╗é┼é½é▄é╣é±","âfü[â^Åëè·ë╗", MB_ICONEXCLAMATION|MB_OK);
  3843.                         return TRUE;
  3844.                     }
  3845.                     break;
  3846.                 case IDC_TOFD:
  3847. /*                üüüüăé╔éeécécé╔âfü[â^æ▐ö≡üüüü    */
  3848.                     if (fddNo==255) {
  3849.                         MessageBox(hDlg, "éeécécé╠âhâëâCâué¬æIæ≡é│éΩé─éóé▄é╣é±","éeéc", MB_ICONEXCLAMATION|MB_OK);
  3850.                         break;
  3851.                     }
  3852.                     dwIndex = SendDlgItemMessage(hDlg,HDD_LB, LB_GETCURSEL, 0, 0);
  3853.                     if (dwIndex==LB_ERR) {
  3854.                         MessageBox(hDlg, "âLâââëâNâ^ü[é¬æIæ≡é│éΩé─éóé▄é╣é±","æIæ≡", MB_ICONEXCLAMATION|MB_OK);
  3855.                         break;
  3856.                     }
  3857.                     if ((ret=OneCharSave(rank[dwIndex],"mansv.dat",fddFileName))!=TRUE) {
  3858.                         if (ret==-3)
  3859.                             MessageBox(hDlg, "âfü[â^é¬éóé┴é╧éóé┼é╖üBò╩é╠âtâìâbâsü[é≡Ägùpé╡é─ë║é│éó","WARNING", MB_ICONEXCLAMATION|MB_OK);
  3860.                         else
  3861.                             MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  3862.                             modeFlag=0;
  3863.                             dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3864.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3865.                             dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  3866.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3867.                             transCount=0;
  3868.                             EndDialog(hDlg, TRUE);
  3869.                             return TRUE;
  3870.                     }
  3871.                     SendDlgItemMessage(hDlg, HDD_LB,
  3872.                                 LB_GETTEXT, (WPARAM)dwIndex, (LPARAM) ((LPCSTR)charName));
  3873.                     SendDlgItemMessage(hDlg, FDD_LB,
  3874.                                 LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3875.                     selectMatrix[transCount]=rank[dwIndex];
  3876.                     transCount++;
  3877.                     me = MenNamePull(cn);
  3878.                     charName[20]=0x00;
  3879.                     cnt=0;
  3880.                     flag=0;
  3881.                     SendDlgItemMessage(hDlg, HDD_LB,
  3882.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3883.                     for (i=0;i<17 ; i++) {
  3884. /*                        for (j=0 ; j<transCount ; j++)
  3885.                             if (selectMatrix[j]==pick_man_list[i]) {
  3886.                                 flag=1;
  3887.                                 break;
  3888.                             }
  3889.                             if (flag!=0) {
  3890.                                 flag=0;
  3891.                                 continue;
  3892.                         }     */
  3893.                         rank[cnt]=pick_man_list[i];
  3894.                         cnt++;
  3895.                         memcpy(charName,cn[i],20);
  3896.                         dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3897.                             LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3898.                     }
  3899.                     break;
  3900.                 case IDC_TOHD:
  3901. /*                üüüüâgâhâüé═éeécécé⌐éτïzéóÅπé░üüüü    */
  3902.                     if (fddNo==255) {
  3903.                         MessageBox(hDlg, "éeécécé╠âhâëâCâué¬æIæ≡é│éΩé─éóé▄é╣é±","éeéc", MB_ICONEXCLAMATION|MB_OK);
  3904.                         break;
  3905.                     }
  3906. /*                    éeécécôαâfü[â^é╠îƒì⌡    */
  3907.                     if (FddCharSeek(fddFileName)!=TRUE) {
  3908.                         MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬æ╢ì▌é╡é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  3909.                         EndDialog(hDlg, TRUE);
  3910.                         modeFlag=0;
  3911.                         return TRUE;
  3912.                     }
  3913.                     for (i=0;i<fdCnt ; i++) {
  3914.                         memcpy(charName,fddCharName[i],20);
  3915.                     }
  3916.                     dwIndex  =SendDlgItemMessage(hDlg,HDD_LB, LB_GETCURSEL, 0, 0);
  3917.                     dwFdIndex=SendDlgItemMessage(hDlg,FDD_LB, LB_GETCURSEL, 0, 0);
  3918.                     if (dwFdIndex==LB_ERR) {
  3919.                             MessageBox(hDlg, "ô]æùé╖éΘéeécécæñâLâââëâNâ^ü[é¬æIæ≡é│éΩé─éóé▄é╣é±","æIæ≡", MB_ICONEXCLAMATION|MB_OK);
  3920.                             break;
  3921.                     }
  3922.                     if (dwIndex==LB_ERR) {
  3923.                             MessageBox(hDlg, "égécécé╠Ä≤é»æñâLâââëâNâ^ü[é¬æIæ≡é│éΩé─éóé▄é╣é±","æIæ≡", MB_ICONEXCLAMATION|MB_OK);
  3924.                             break;
  3925.                     }
  3926.                     if (OneCharLoad(rank[dwIndex],dwFdIndex,"man.dat")!=TRUE) {
  3927.                         MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  3928.                         modeFlag=0;
  3929.                         dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3930.                                 LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3931.                         dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  3932.                                 LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3933.                         EndDialog(hDlg, TRUE);
  3934.                         return TRUE;
  3935.                     }
  3936.                     SendDlgItemMessage(hDlg, HDD_LB,
  3937.                            LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3938.                     me = MenNamePull(cn);
  3939.                     charName[20]=0x00;
  3940.                     cnt=0;
  3941.                     for (i=0;i<17 ; i++) {
  3942.                         rank[cnt]=pick_man_list[i];
  3943.                         cnt++;
  3944.                         memcpy(charName,cn[i],20);
  3945.                         dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3946.                             LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3947.                     }
  3948.                     break;
  3949.                 case IDC_FDSEL:
  3950.                     fddNo=256;
  3951.                     DialogBox(hDlgInstance, "FddSelect", hDlg, (DLGPROC)lpfnFddsDlgProc);
  3952.                     if (fddNo!=255) {
  3953.                         if (GetDriveType(fddNo)!=DRIVE_REMOVABLE) {
  3954.                             MessageBox(hDlg, "é▒é╠âhâëâCâué═âtâìâbâsü[âfâBâXâNâhâëâCâué┼é═éáéΦé▄é╣é±","WARNING", MB_ICONQUESTION|MB_OK);
  3955.                             EndDialog(hDlg, TRUE);
  3956.                             return TRUE;
  3957.                         }
  3958.                         fddFileName[0]=(char)fddNo+'A';
  3959.                         fddFileName[1]=':';
  3960.                         fddFileName[2]='\\';
  3961.                         fddFileName[3]='\0';
  3962.                         strcat(fddFileName,"mansv.dat");
  3963. /*                        éeécécôαâfü[â^é╠èmöF    */
  3964.                         if ((fh2=OpenFile(fddFileName,&openBuf2,OF_EXIST))==HFILE_ERROR) {
  3965.                             if (MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬æ╢ì▌é╡é▄é╣é±üBì∞ɼé╡é─éµéδé╡éóé┼é╖é⌐üH","éeécéc", MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
  3966.                                 return TRUE;
  3967.                             if (InitCopy("mansv.dat",fddFileName)!=TRUE) {
  3968.                                 MessageBox(hDlg,"âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc",MB_ICONEXCLAMATION|MB_OK);
  3969.                                 EndDialog(hDlg, TRUE);
  3970.                                 return TRUE;
  3971.                             }
  3972.                         }
  3973. /*                        éeécécôαâfü[â^é╠ò\Ī    */
  3974.                         if (FddCharSeek(fddFileName)!=TRUE) {
  3975.                             MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬æ╢ì▌é╡é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  3976.                             modeFlag=0;
  3977.                             EndDialog(hDlg, TRUE);
  3978.                             return TRUE;
  3979.                         }
  3980.                         dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  3981.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3982.                         for (i=0;i<fdCnt ; i++) {
  3983.                             memcpy(charName,fddCharName[i],20);
  3984.                             dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  3985.                                 LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3986.                         }
  3987. /*                        égécécôαæSâfü[â^é╠îƒì⌡ò\Ī    */
  3988.                         SendDlgItemMessage(hDlg, HDD_LB,
  3989.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  3990.                         me = MenNamePull(cn);
  3991.                         charName[20]=0x00;
  3992.                         cnt=0;
  3993.                         for (i=0;i<17 ; i++) {
  3994.                             rank[cnt]=pick_man_list[i];
  3995.                             cnt++;
  3996.                             memcpy(charName,cn[i],20);
  3997.                             dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  3998.                                 LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  3999.                         }
  4000.  
  4001.                     }
  4002.                     break;
  4003. /*                case TRANS_B:
  4004.                     if (modeFlag==0)
  4005.                         return TRUE;
  4006.                     if (modeFlag==1) {
  4007.                         if (OneCharSave(rank[dwIndex],"man.dat",fddFileName)!=TRUE) {
  4008.                                 MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  4009.                                 modeFlag=0;
  4010.                                 dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4011.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4012.                                 dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  4013.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4014.                                 SetDlgItemText(hDlg, INFO_MESSAGE,info[0]);
  4015.                                 SetDlgItemText(hDlg, ARROW_M,arrowData[0]);
  4016.                                 transCount=0;
  4017.                                 return TRUE;
  4018.                         }
  4019.                         SendDlgItemMessage(hDlg, HDD_LB,
  4020.                                     LB_GETTEXT, (WPARAM)dwIndex, (LPARAM) ((LPCSTR)charName));
  4021.                         SendDlgItemMessage(hDlg, FDD_LB,
  4022.                                     LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  4023.                         selectMatrix[transCount]=rank[dwIndex];
  4024.                         transCount++;
  4025.                         me = MenNamePull(cn);
  4026.                         charName[20]=0x00;
  4027.                         cnt=0;
  4028.                         flag=0;
  4029.                         SendDlgItemMessage(hDlg, HDD_LB,
  4030.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4031.                         for (i=0;i<17 ; i++) {
  4032.                             for (j=0 ; j<transCount ; j++)
  4033.                                 if (selectMatrix[j]==pick_man_list[i]) {
  4034.                                     flag=1;
  4035.                                     break;
  4036.                                 }
  4037.                             if (flag!=0) {
  4038.                                 flag=0;
  4039.                                 continue;
  4040.                             }
  4041.                             rank[cnt]=pick_man_list[i];
  4042.                             cnt++;
  4043.                             memcpy(charName,cn[i],20);
  4044.                             dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4045.                                 LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  4046.                         }
  4047.                         if (MessageBox(hDlg, "âfü[â^ô]æùé≡ÅIù╣é╡é▄é╖üBéµéδé╡éóé┼é╖é⌐üH","âüâbâZü[âW", MB_ICONQUESTION|MB_OKCANCEL)==IDOK) {
  4048.                                 modeFlag=0;
  4049.                                 dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4050.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4051.                                 dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  4052.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4053.                                 SetDlgItemText(hDlg, INFO_MESSAGE,info[0]);
  4054.                                 SetDlgItemText(hDlg, ARROW_M,arrowData[0]);
  4055.                                 transCount=0;
  4056.                                 return TRUE;
  4057.                         }
  4058.                         return TRUE;
  4059.                     }
  4060.                     if (modeFlag==2) {
  4061.                         if (OneCharLoad(rank[dwIndex],dwFdIndex,"man.dat")!=TRUE) {
  4062.                             MessageBox(hDlg, "âfü[â^âtâ@âCâïé¬èJé»é▄é╣é±üBÆåÆfé╡é▄é╖","éeécéc", MB_ICONEXCLAMATION|MB_OK);
  4063.                             modeFlag=0;
  4064.                             dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4065.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4066.                             dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  4067.                                     LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4068.                             SetDlgItemText(hDlg, INFO_MESSAGE,info[0]);
  4069.                             SetDlgItemText(hDlg, ARROW_M,arrowData[0]);
  4070.                             return TRUE;
  4071.                         }
  4072.                         SendDlgItemMessage(hDlg, HDD_LB,
  4073.                                LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4074.                         me = MenNamePull(cn);
  4075.                         charName[20]=0x00;
  4076.                         cnt=0;
  4077.                         for (i=0;i<17 ; i++) {
  4078.                             rank[cnt]=pick_man_list[i];
  4079.                             cnt++;
  4080.                             memcpy(charName,cn[i],20);
  4081.                             dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4082.                                 LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  4083.                         }
  4084.                         if (MessageBox(hDlg, "âfü[â^ô]æùé≡ÅIù╣é╡é▄é╖üBéµéδé╡éóé┼é╖é⌐üH","âüâbâZü[âW", MB_ICONQUESTION|MB_OKCANCEL)==IDOK) {
  4085.                                 modeFlag=0;
  4086.                                 dwIndex = SendDlgItemMessage(hDlg, HDD_LB,
  4087.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4088.                                 dwIndex = SendDlgItemMessage(hDlg, FDD_LB,
  4089.                                         LB_RESETCONTENT, (WPARAM)0 , (LPARAM)0L);
  4090.                                 SetDlgItemText(hDlg, INFO_MESSAGE,info[0]);
  4091.                                 SetDlgItemText(hDlg, ARROW_M,arrowData[0]);
  4092.                                 transCount=0;
  4093.                                 return TRUE;
  4094.                         }
  4095.                         return TRUE;
  4096.                     }
  4097.                     return TRUE;
  4098. */
  4099.                 case IDC_END:
  4100.                     EndDialog(hDlg, TRUE);
  4101.                     return TRUE;
  4102.             }
  4103.             break;
  4104.     }
  4105.     return FALSE;
  4106. }
  4107.  
  4108.  
  4109. #define HAIMAX (9*4*3+7*4)
  4110.  
  4111. BOOL FAR PASCAL _export    EnviDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4112. {
  4113.     PAINTSTRUCT            ps;
  4114.     extern int Haipoint;
  4115.     int a;
  4116.     char st[20];
  4117.     char *tozennum();
  4118.  
  4119.     lParam++;
  4120.     lParam--;
  4121.  
  4122.     switch (message) {
  4123.         case WM_INITDIALOG :
  4124. /*            âJü[â\âïé╠ò╧ìX    */
  4125.             SetCursor(winCursor[1]);
  4126.             ShowCursor(TRUE);
  4127.             if (Open_mode==FALSE)
  4128.                 CheckDlgButton(hDlg,OPEN_M,0);
  4129.             else
  4130.                 CheckDlgButton(hDlg,OPEN_M,1);
  4131.             if (Teach_mode==FALSE)
  4132.                 CheckDlgButton(hDlg,AUTO_M,0);
  4133.             else
  4134.                 CheckDlgButton(hDlg,AUTO_M,1);
  4135.             if (eFlag.proc==CC_KACHI&&eFlag.proc==CC_KAKE)
  4136.                 CheckDlgButton(hDlg,OPEN_M,2);
  4137.             if (eFlag.proc==CC_SHINAN)
  4138.                 CheckDlgButton(hDlg,AUTO_M,2);
  4139.             a = HAIMAX-Haipoint-14;
  4140.             strcpy(st,tozennum(a));
  4141.             SetDlgItemText(hDlg, NOKORI,st);
  4142.             switch(gSpeed) {
  4143.                 case 100:
  4144.                     CheckRadioButton(hDlg,IDC_FAST,IDC_SLOW,IDC_FAST);
  4145.                     break;
  4146.                 case 200:
  4147.                     CheckRadioButton(hDlg,IDC_FAST,IDC_SLOW,IDC_NORMAL);
  4148.                     break;
  4149.                 case 500:
  4150.                     CheckRadioButton(hDlg,IDC_FAST,IDC_SLOW,IDC_SLOW);
  4151.                     break;
  4152.             }
  4153.             return FALSE;
  4154.         case WM_COMMAND :
  4155.             switch (wParam) {
  4156.                 case OPEN_M:
  4157.                     if (eFlag.proc!=CC_KACHI&&eFlag.proc!=CC_KAKE)
  4158.                         open_tehai();
  4159.                     return TRUE;
  4160.                 case AUTO_M:
  4161.                     if (eFlag.proc!=CC_SHINAN)
  4162.                         Teach_mode ^= 1;
  4163.                     return TRUE;
  4164.                 case MOCHITEN_B:
  4165.                     DialogBox(hDlgInstance, "ScoreWindow", hWnd, (DLGPROC)lpfnEScrDlgProc);
  4166.                     return TRUE;
  4167.                 case G_ESC:
  4168.                     EndDialog(hDlg, TRUE);
  4169.                     return TRUE;
  4170.                 case G_END:
  4171.                     EndDialog(hDlg, FALSE);
  4172.                     return TRUE;
  4173.                 case IDC_FAST:
  4174.                     gSpeed=100;
  4175.                     return TRUE;
  4176.                 case IDC_NORMAL:
  4177.                     gSpeed=200;
  4178.                     return TRUE;
  4179.                 case IDC_SLOW:
  4180.                     gSpeed=500;
  4181.                     return TRUE;
  4182.             }
  4183.             break;
  4184.         case WM_PAINT :
  4185.             BeginPaint(hDlg, &ps);
  4186.             EndPaint(hDlg, &ps);
  4187.             break;
  4188.     }
  4189.     return FALSE;
  4190. }
  4191.  
  4192. BOOL FAR PASCAL _export    Ha99DlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4193. {
  4194.     PAINTSTRUCT            ps;
  4195.     RECT                rect,rectP;
  4196.     int                    baseX,baseY;
  4197.  
  4198.     switch (message) {
  4199.         case WM_INITDIALOG :
  4200. /*            âJü[â\âïé╠ò╧ìX    */
  4201. /*            SetTimer(hDlg,ID_DISPTIME,4000,lpfnDispDlgProc); */
  4202.             SetCursor(winCursor[1]);
  4203.             ShowCursor(TRUE);
  4204.             GetWindowRect(hDlg,&rect);
  4205.             GetWindowRect(hWnd,&rectP);
  4206.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4207.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4208.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4209.             break;
  4210.         case WM_COMMAND :
  4211.             switch (wParam) {
  4212.                 case NONAGA_99:
  4213.                     dir99=FALSE;
  4214.                     EndDialog(hDlg, TRUE);
  4215.                     return TRUE;
  4216.                 case NAGASI_99:
  4217.                     dir99=TRUE;
  4218.                     EndDialog(hDlg, TRUE);
  4219.                     return TRUE;
  4220.             }
  4221.             break;
  4222. /*        case WM_TIMER:
  4223.             EndDialog(hDlg, TRUE);
  4224.             return TRUE; */
  4225.         case WM_PAINT :
  4226.             BeginPaint(hDlg, &ps);
  4227.             EndPaint(hDlg, &ps);
  4228.             break;
  4229.     }
  4230.     return FALSE;
  4231. }
  4232.  
  4233. BOOL FAR PASCAL _export    DispDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4234. {
  4235.     PAINTSTRUCT    ps;
  4236.     HDC        hdc;
  4237.     RECT        rect;
  4238.     RECT        rectP;
  4239.     int                    baseX,baseY;
  4240.     int            ret;
  4241.     HWND        hd;
  4242.  
  4243.     switch (message) {
  4244.         case WM_INITDIALOG :
  4245.             SetTimer(hDlg,ID_DISPTIME,4000,lpfnDispDlgProc);
  4246. /*            âJü[â\âïé╠ò╧ìX    */
  4247.             SetCursor(winCursor[1]);
  4248.             ShowCursor(TRUE);
  4249.             GetWindowRect(hDlg,&rect);
  4250.             GetWindowRect(hWnd,&rectP);
  4251.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4252.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4253.             ret=(int)SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4254.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4255.             break;
  4256.         case WM_USER+105:
  4257.             hd=SetCapture(hDlg);
  4258.             break;
  4259.         case WM_TIMER:
  4260.             EndDialog(hDlg, TRUE);
  4261.             return TRUE;
  4262.         case WM_LBUTTONUP:
  4263.             EndDialog(hDlg, TRUE);
  4264.             ReleaseCapture();
  4265.             return TRUE;
  4266.         case WM_NCLBUTTONUP:
  4267.             EndDialog(hDlg, TRUE);
  4268.             ReleaseCapture();
  4269.             return 0;
  4270.         case WM_PAINT :
  4271.             hdc=BeginPaint(hDlg, &ps);
  4272.             SetDlgItemText(hDlg, K_MES, kyokuMessage);
  4273.             EndPaint(hDlg, &ps);
  4274.             break;
  4275.     }
  4276.     return FALSE;
  4277. }
  4278.  
  4279. /*é▒é▒é⌐éτé╛éµé±éUü^éP*/
  4280.  
  4281. BOOL FAR PASCAL _export    ScorDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4282. {
  4283.     PAINTSTRUCT    ps;
  4284.     RECT        rect,rectP;
  4285.     int                i;
  4286.     static int        scrFlag;
  4287.     static int        flag[4];
  4288.     static int        all = FALSE;
  4289.     int                    baseX,baseY;
  4290.  
  4291.  
  4292.     switch (message) {
  4293.         case WM_INITDIALOG :
  4294. /*            âJü[â\âïé╠ò╧ìX    */
  4295.             SetCursor(winCursor[1]);
  4296.             ShowCursor(TRUE);
  4297.             scrFlag=0;
  4298.             SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4299.             GetWindowRect(hDlg,&rect);
  4300.             GetWindowRect(hWnd,&rectP);
  4301.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4302.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4303.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY-64, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4304.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4305.             break;
  4306.         case WM_USER+105:
  4307.             SetCapture(hDlg);
  4308.             break;
  4309.         case WM_TIMER:
  4310.             switch(scrFlag) {
  4311.                 case    0:
  4312.                     scrFlag++;
  4313.                     SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4314.                     PostMessage(hDlg, WM_PAINT, 0 ,0L);
  4315.                     break;
  4316.                 case    1:
  4317.                     scrFlag++;
  4318.                     SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4319.                     break;
  4320.                 case    2:
  4321.                     EndDialog(hDlg, TRUE);
  4322.                     ReleaseCapture();
  4323.                     return TRUE;
  4324.             }
  4325.             break;
  4326.         case WM_LBUTTONUP:
  4327.             switch(scrFlag) {
  4328.                 case    0:
  4329.                     scrFlag++;
  4330.                     PostMessage(hDlg, WM_PAINT, 0 ,0L);
  4331.                     break;
  4332.                 case    1:
  4333.                     scrFlag++;
  4334.                     SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4335.                     break;
  4336.                 case    2:
  4337.                     EndDialog(hDlg, TRUE);
  4338.                     ReleaseCapture();
  4339.                     return TRUE;
  4340.             }
  4341.             break;
  4342.         case WM_NCLBUTTONUP:
  4343.             switch(scrFlag) {
  4344.                 case    0:
  4345.                     scrFlag++;
  4346.                     PostMessage(hDlg, WM_PAINT, 0 ,0L);
  4347.                     return 0;
  4348.                 case    1:
  4349.                     scrFlag++;
  4350.                     SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4351.                     return 0;
  4352.                 case    2:
  4353.                     EndDialog(hDlg, TRUE);
  4354.                     ReleaseCapture();
  4355.                     return 0;
  4356.             }
  4357.             break;
  4358.         case WM_PAINT :
  4359.             BeginPaint(hDlg, &ps);
  4360.             if (scrFlag==0) {
  4361.                 for ( i = 0; i < 4; i++ ) {
  4362.                     flag[i] = FALSE;
  4363.                     if ( Member[i].delta != 0 ) {
  4364.                         flag[i] = TRUE;
  4365.                         all = TRUE;
  4366.                         display_eachscore(i,Member[i].score,Member[i].delta,men[Member[i].men].name);
  4367.                         Member[i].score += Member[i].delta;
  4368.                     } else {
  4369.                         display_eachscr(i,Member[i].score,Member[i].delta,men[Member[i].men].name);
  4370.                     }
  4371.                 }
  4372.                 for (i=0 ; i<4 ; i++) {
  4373.                     SetDlgItemText(hDlg, P_NAME1+i, scoreName[i]);
  4374.                     SetDlgItemText(hDlg, PN_SCR1+i, scoreSt1[i]);
  4375.                     SetDlgItemText(hDlg, SCR_PM1+i, scoreSt2[i]);
  4376.                 }
  4377.             } else if (scrFlag == 1) {
  4378.                 while ( all ) {
  4379.                     all = FALSE;
  4380.                     for ( i = 0; i < 4; i++ ) {
  4381.                         if ( flag[i] ) {
  4382.                             flag[i] = (down_eachscore(i) != 0 ? TRUE : FALSE);
  4383.                         }
  4384.                         all |= flag[i];
  4385.                         SetDlgItemText(hDlg, P_NAME1+i, scoreName[i]);
  4386.                         SetDlgItemText(hDlg, PN_SCR1+i, scoreSt1[i]);
  4387.                         SetDlgItemText(hDlg, SCR_PM1+i, scoreSt2[i]);
  4388.                     }
  4389.                 }
  4390.                 for ( i = 0; i < 4; i++ ) {
  4391.                     if ( Member[i].delta == 0 ) {
  4392.                         display_eachscore(i,Member[i].score,0,men[Member[i].men].name);
  4393.                     }
  4394.                 }
  4395.             }
  4396.             EndPaint(hDlg, &ps);
  4397.             break;
  4398.         case WM_MOVE:
  4399.             for (i=0 ; i<4 ; i++) {
  4400.                    Member[i].tehai.top = haisort(Member[i].tehai.top);
  4401.                 put_alltehai(i);                /* graphics */
  4402.             }
  4403.             display_dora();
  4404.             display_udora();
  4405.             disp_naki();
  4406.             display_sai();
  4407.             display_bahyoji();
  4408.             display_hyochar(Siba,reaStick);
  4409.             display_stehai();
  4410.             Display_reach_b();
  4411.             break;
  4412.     }
  4413.     return FALSE;
  4414. }
  4415.  
  4416. BOOL FAR PASCAL _export    EScrDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4417. {
  4418.     PAINTSTRUCT    ps;
  4419.     RECT        rect,rectP;
  4420.     int                i;
  4421.     static int        scrFlag;
  4422.     static int        flag[4];
  4423.     static int        all = FALSE;
  4424.     int                    baseX,baseY;
  4425.  
  4426.  
  4427.     switch (message) {
  4428.         case WM_INITDIALOG :
  4429. /*            âJü[â\âïé╠ò╧ìX    */
  4430.             SetCursor(winCursor[1]);
  4431.             ShowCursor(TRUE);
  4432.             scrFlag=0;
  4433.             SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4434.             GetWindowRect(hDlg,&rect);
  4435.             GetWindowRect(hWnd,&rectP);
  4436.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4437.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4438.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4439.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4440.             break;
  4441.         case WM_USER+105:
  4442.             SetCapture(hDlg);
  4443.             break;
  4444.         case WM_LBUTTONUP:
  4445.             EndDialog(hDlg, TRUE);
  4446.             ReleaseCapture();
  4447.             break;
  4448.         case WM_NCLBUTTONUP:
  4449.             EndDialog(hDlg, TRUE);
  4450.             ReleaseCapture();
  4451.             break;
  4452.         case WM_PAINT :
  4453.             BeginPaint(hDlg, &ps);
  4454.             for ( i = 0; i < 4; i++ ) {
  4455.                 flag[i] = FALSE;
  4456. /*                if ( Member[i].delta != 0 ) {
  4457.                     flag[i] = TRUE;
  4458.                     all = TRUE;
  4459.                     display_eachscore(i,Member[i].score,Member[i].delta,men[Member[i].men].name);
  4460.                     Member[i].score += Member[i].delta;
  4461.                 } else {  */
  4462.                     display_eachscr(i,Member[i].score,Member[i].delta,men[Member[i].men].name);
  4463. /*                }     */
  4464.             }
  4465.             for (i=0 ; i<4 ; i++) {
  4466.                 SetDlgItemText(hDlg, P_NAME1+i, scoreName[i]);
  4467.                 SetDlgItemText(hDlg, PN_SCR1+i, scoreSt1[i]);
  4468.             }
  4469.             EndPaint(hDlg, &ps);
  4470.             break;
  4471.         case WM_MOVE:
  4472. /*            for (i=0 ; i<4 ; i++) {
  4473.                  put_alltehai(i);    
  4474.             }
  4475.             display_dora();
  4476.             disp_naki();
  4477.             display_sai();
  4478.             display_bahyoji();
  4479.             display_hyochar(Siba,reaStick);
  4480.             display_stehai();       */
  4481.             break;
  4482.     }
  4483.     return FALSE;
  4484. }
  4485.  
  4486. BOOL FAR PASCAL _export    YakuDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4487. {
  4488. PAINTSTRUCT    ps;
  4489. int            i;
  4490. int                    baseX,baseY;
  4491. RECT                rect,rectP;
  4492.  
  4493.     switch (message) {
  4494.         case WM_INITDIALOG :
  4495. /*            âJü[â\âïé╠ò╧ìX    */
  4496.             SetCursor(winCursor[1]);
  4497.             ShowCursor(TRUE);
  4498.             SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4499.             GetWindowRect(hDlg,&rect);
  4500.             GetWindowRect(hWnd,&rectP);
  4501.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4502.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4503.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4504.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4505.             break;
  4506.         case WM_USER+105:
  4507.             SetCapture(hDlg);
  4508.             break;
  4509.         case WM_TIMER:
  4510.             EndDialog(hDlg, TRUE);
  4511.             ReleaseCapture();
  4512.             break;
  4513.         case WM_LBUTTONUP:
  4514.             EndDialog(hDlg, TRUE);
  4515.             ReleaseCapture();
  4516.             break;
  4517.         case WM_NCLBUTTONUP:
  4518.             EndDialog(hDlg, TRUE);
  4519.             ReleaseCapture();
  4520.             return 0;
  4521.         case WM_PAINT :
  4522.             BeginPaint(hDlg, &ps);
  4523.             for (i=0 ; i<10 ; i++) {
  4524.                 SetDlgItemText(hDlg, YAKU_1+i*2,yakuMatrix.word[i].yaku);
  4525.                 SetDlgItemText(hDlg,  HAN_1+i*2,yakuMatrix.word[i].han);
  4526.             }
  4527.             SetDlgItemText(hDlg, TOTAL,yakuMatrix.total);
  4528.             SetDlgItemText(hDlg,FU_HAN,yakuMatrix.fuHan);
  4529.             SetDlgItemText(hDlg,  TEN,yakuMatrix.ten);
  4530.             EndPaint(hDlg, &ps);
  4531.             break;
  4532.     }
  4533.     return FALSE;
  4534. }
  4535.  
  4536. BOOL FAR PASCAL _export    RyukDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4537. {
  4538. int                    baseX,baseY;
  4539. RECT                rect,rectP;
  4540.  
  4541.     switch (message) {
  4542.         case WM_INITDIALOG :
  4543.             SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc);
  4544. /*            âJü[â\âïé╠ò╧ìX    */
  4545.             SetCursor(winCursor[1]);
  4546.             ShowCursor(TRUE);
  4547.             GetWindowRect(hDlg,&rect);
  4548.             GetWindowRect(hWnd,&rectP);
  4549.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4550.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4551.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4552.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4553.             break;
  4554.         case WM_USER+105:
  4555.             SetCapture(hDlg);
  4556.             break;
  4557.         case WM_TIMER:
  4558.             ReleaseCapture();
  4559.             EndDialog(hDlg, TRUE);
  4560.             break;
  4561.         case WM_LBUTTONUP:
  4562.             ReleaseCapture();
  4563.             EndDialog(hDlg, TRUE);
  4564.             break;
  4565.         case WM_NCLBUTTONUP:
  4566.             ReleaseCapture();
  4567.             EndDialog(hDlg, TRUE);
  4568.             return 0;
  4569.     }
  4570.     return FALSE;
  4571. }
  4572.  
  4573. BOOL FAR PASCAL _export    MesdDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4574. {
  4575. int                    baseX,baseY;
  4576. RECT                rect,rectP;
  4577.  
  4578.     switch (message) {
  4579.         case WM_INITDIALOG :
  4580. /*            SetTimer(hDlg,ID_DISPTIME,4000,lpfnScorDlgProc); */
  4581. /*            âJü[â\âïé╠ò╧ìX    */
  4582.             SetCursor(winCursor[1]);
  4583.             ShowCursor(TRUE);
  4584.             GetWindowRect(hDlg,&rect);
  4585.             GetWindowRect(hWnd,&rectP);
  4586.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4587.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4588.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4589.             SetDlgItemText(hDlg, MES_DISP,dispMessage);
  4590.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4591.             break;
  4592.         case WM_USER+105:
  4593.             SetCapture(hDlg);
  4594.             break;
  4595. /*        case WM_TIMER:
  4596.             EndDialog(hDlg, TRUE);
  4597.             break;*/
  4598.         case WM_LBUTTONUP:
  4599.             EndDialog(hDlg, TRUE);
  4600.             ReleaseCapture();
  4601.             break;
  4602.         case WM_NCLBUTTONUP:
  4603.             EndDialog(hDlg, TRUE);
  4604.             ReleaseCapture();
  4605.             return 0;
  4606.     }
  4607.     return FALSE;
  4608. }
  4609.  
  4610. BOOL FAR PASCAL _export    TotaDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4611. {
  4612. int        i,j;
  4613. char    score[16],scrJms[16],buf[3];
  4614. int                    baseX,baseY;
  4615. RECT                rect,rectP;
  4616.  
  4617.     switch (message) {
  4618.         case WM_INITDIALOG :
  4619. /*            âJü[â\âïé╠ò╧ìX    */
  4620.             SetCursor(winCursor[1]);
  4621.             ShowCursor(TRUE);
  4622.             SetDlgItemText(hDlg, MES_DISP,dispMessage);
  4623.             GetWindowRect(hDlg,&rect);
  4624.             GetWindowRect(hWnd,&rectP);
  4625.             baseX=((rectP.right-rectP.left)-(rect.right-rect.left))/2+rectP.left;
  4626.             baseY=((rectP.bottom-rectP.top)-(rect.bottom-rect.top))/2+rectP.top;
  4627.             SetWindowPos(hDlg, (HWND)NULL, baseX, baseY, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
  4628.             PostMessage(hDlg, WM_USER+105, 0, 0L);
  4629.             break;
  4630.         case WM_USER+105:
  4631.             SetCapture(hDlg);
  4632.             break;
  4633.         case WM_NCLBUTTONUP:
  4634.             EndDialog(hDlg, TRUE);
  4635.             ReleaseCapture();
  4636.             return 0;
  4637.         case WM_LBUTTONUP:
  4638.             EndDialog(hDlg, TRUE);
  4639.             ReleaseCapture();
  4640.             break;
  4641.         case WM_PAINT :
  4642.             for ( i = 0; i < 4; i++ ) {
  4643.                 SetDlgItemText(hDlg, TT_NAME1+i,men[Member[i].men].name);
  4644.                 itoa(last_sc[i],score,10);
  4645.                 if (score[0]=='-') {
  4646.                     strcpy(scrJms,"ü|");
  4647.                     j=1;
  4648.                 } else {
  4649.                     strcpy(scrJms,"ü{");
  4650.                     j=0;
  4651.                 }
  4652.                 for ( ; j<(int)strlen(score) ; j++) {
  4653.                     strcpy(buf,"éO");
  4654.                     buf[1]+=score[j]-0x30;
  4655.                     buf[2]=0x00;
  4656.                     strcat(scrJms,buf);
  4657.                 }
  4658.                 SetDlgItemText(hDlg, TT_SCR1+i ,scrJms);
  4659.             }
  4660.             break;
  4661.         case WM_MOVE:
  4662.             for (i=0 ; i<4 ; i++) {
  4663.                    Member[i].tehai.top = haisort(Member[i].tehai.top);
  4664.                 put_alltehai(i);                /* graphics */
  4665.             }
  4666.             display_dora();
  4667.             display_udora();
  4668.             disp_naki();
  4669.             display_sai();
  4670.             display_bahyoji();
  4671.             display_hyochar(Siba,reaStick);
  4672.             display_stehai();
  4673.             Display_reach_b();
  4674.             break;
  4675.     }
  4676.     return FALSE;
  4677. }
  4678.  
  4679. BOOL FAR PASCAL _export    ProfDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4680. {
  4681. int    i;
  4682. char    charName[32];
  4683. char    charMoney1[32];
  4684. char    charMoney2[32];
  4685. char    fileName[20];
  4686. char   *filePoint;
  4687. static char   *fileBuffer;
  4688. static FILE   *fp;
  4689. PAINTSTRUCT    ps;
  4690. HPALETTE    fase;
  4691. /*DRAWITEMSTRUCT far *drs;*/
  4692. long    fileSize;
  4693. HDC        dlgHdc;
  4694.  
  4695.     switch (message) {
  4696.         case WM_INITDIALOG :
  4697. /*            âJü[â\âïé╠ò╧ìX    */
  4698.             SetCursor(winCursor[1]);
  4699.             ShowCursor(TRUE);
  4700.             memset(charName,0x00,13);
  4701.             memset(charMoney1,0x00,32);
  4702.             memset(charMoney2,0x00,32);
  4703. /*            SendMessage(hDlg, WM_PAINT, 0 ,0L);     */
  4704.             break;
  4705.         case WM_COMMAND :
  4706.             switch (wParam) {
  4707.                 case PROF_OK:
  4708.                     dlgHdc = BeginPaint (hDlg, &ps) ;
  4709.                     DeleteObject(fase);
  4710.                     RecoverPalette(dlgHdc);
  4711.                     EndDialog(hDlg, FALSE);
  4712.                     EndPaint (hDlg, &ps) ;
  4713.                     break;
  4714.                 case PROF_NG:
  4715.                     dlgHdc = BeginPaint (hDlg, &ps) ;
  4716.                     DeleteObject(fase);
  4717.                     RecoverPalette(dlgHdc);
  4718.                     EndDialog(hDlg, TRUE);
  4719.                     EndPaint (hDlg, &ps) ;
  4720.                     break;
  4721.             }
  4722.             break;
  4723.         case WM_PAINT:
  4724.             dlgHdc = BeginPaint (hDlg, &ps) ;
  4725.             strcpy(charName,men[selectChar].name);
  4726.             SetDlgItemText(hDlg, PROF_NAME,charName);
  4727.             itoa(men[selectChar].money,charMoney2,10);
  4728.             if (men[selectChar].money<0) {
  4729.                 strcpy(charMoney1,"ü|");
  4730.                 for (i=0 ; i<(int)(6-strlen(charMoney2)-1) ; i++)
  4731.                     strcat(charMoney1,"ü@");
  4732.                 for (i=0 ; i<(int)strlen(charMoney2)-1 ; i++) {
  4733.                     strcat(charMoney1,"éO");
  4734.                     charMoney1[strlen(charMoney1)-1]+=(char)(charMoney2[i+1]-0x30);
  4735.                 }
  4736.             } else {
  4737.                 strcpy(charMoney1,"ü@");
  4738.                 for (i=0 ; i<(int)(6-strlen(charMoney2)) ; i++)
  4739.                     strcat(charMoney1,"ü@");
  4740.                 for (i=0 ; i<(int)strlen(charMoney2) ; i++) {
  4741.                     strcat(charMoney1,"éO");
  4742.                     charMoney1[strlen(charMoney1)-1]+=(char)(charMoney2[i]-0x30);
  4743.                 }
  4744.             }
  4745.             SetDlgItemText(hDlg, PROF_MONEY,charMoney1);
  4746.             strcpy(fileName,men[selectChar].network);
  4747.             filePoint=strchr(fileName,'.');
  4748.             strcpy(filePoint+1,"doc");
  4749.             if ((fp=fopen(fileName,"rb"))!=NULL) {
  4750.                 fseek(fp,0,SEEK_END);
  4751.                 fileSize=ftell(fp);
  4752.                 fseek(fp,0,SEEK_SET);
  4753.                 fileBuffer=malloc((int)fileSize);
  4754.                 do {
  4755.                     fread(fileBuffer,1,1,fp);
  4756.                 } while(fileBuffer[0]!=0x0d);
  4757.                 fseek(fp,1,SEEK_CUR);
  4758.                 for (i=0 ; i<(int)fileSize ; i++) {
  4759.                     fread(&fileBuffer[i],1,1,fp);
  4760.                     switch (fileBuffer[i]) {
  4761.                         case 0x0d:
  4762.                             fseek(fp,1,SEEK_CUR);
  4763.                             fileBuffer[i]=0x00;
  4764.                             i--;
  4765.                             break;
  4766.                         case 0x0a:
  4767.                             fileBuffer[i]=0x00;
  4768.                             i--;
  4769.                             break;
  4770.                         case 0x1a:
  4771.                             fileBuffer[i]=0x00;
  4772.                             i=420;
  4773.                             break;
  4774.                     }
  4775.                 }
  4776.                 SetDlgItemText(hDlg, PROF_PROF,fileBuffer);
  4777.                 fclose(fp);
  4778.                 free(fileBuffer);
  4779.             }
  4780. /*            if (men[selectChar].mode!=0) {
  4781.                 fase=Dfase_put_prof(dlgHdc,selectChar,0);
  4782.             }
  4783. */
  4784.             EndPaint (hDlg, &ps) ;
  4785.             break;
  4786. /*        case WM_DRAWITEM:
  4787.             drs=(DRAWITEMSTRUCT far *)lParam;
  4788.             if (men[selectChar].mode!=0) {
  4789.                 Dfase_put_prof(drs->hDC,selectChar,0);
  4790.             }
  4791. */    }
  4792.     return FALSE;
  4793. }
  4794.  
  4795. BOOL FAR PASCAL _export    ChgpDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4796. {
  4797. static int            rank[17];
  4798. static char           *cn[17];
  4799. static char            charName[21];
  4800. char                szBuf[64];
  4801. static int            setNo;
  4802. int                    me;
  4803. int                    cnt;
  4804. int                    i;
  4805. DWORD                dwIndex;
  4806.  
  4807.     switch (message) {
  4808.         case WM_INITDIALOG :
  4809.             SetCursor(winCursor[1]);
  4810.             ShowCursor(TRUE);
  4811.             SetDlgItemText(hDlg, CP_NOW_PLAYER_M,men[Member[3].men].name);
  4812.             me = MenNamePull(cn);
  4813.             charName[20]=0x00;
  4814.             cnt=0;
  4815.             for (i=0;i<17 ; i++) {
  4816.                 rank[cnt]=pick_man_list[i];
  4817.                 cnt++;
  4818.                 memcpy(charName,cn[i],20);
  4819.                 dwIndex = SendDlgItemMessage(hDlg, CP_ALL_CHAR_LB,
  4820.                        LB_ADDSTRING, 0, (LPARAM) ((LPCSTR)charName));
  4821.             }
  4822.             setNo=255;
  4823.             break;
  4824.         case WM_COMMAND :
  4825.             switch (wParam) {
  4826.                 case CP_ALL_CHAR_LB:
  4827.                     if (HIWORD(lParam)==LBN_DBLCLK) {    /* â_âuâïâNâèâbâNÄ₧    */
  4828.                         dwIndex = SendDlgItemMessage(hDlg,CP_ALL_CHAR_LB, LB_GETCURSEL, 0, 0);
  4829.                         if (dwIndex != LB_ERR) {
  4830.                             SendDlgItemMessage(hDlg, CP_ALL_CHAR_LB,LB_GETTEXT,
  4831.                                 (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  4832.                             SetDlgItemText(hDlg, CP_AFT_PLAYER_M,szBuf);
  4833.                             setNo=(int)dwIndex;
  4834.                         }
  4835.                     }
  4836.                     break;
  4837.                 case CP_SELECT_B:
  4838.                     dwIndex = SendDlgItemMessage(hDlg,CP_ALL_CHAR_LB, LB_GETCURSEL, 0, 0);
  4839.                     if (dwIndex != LB_ERR) {
  4840.                         SendDlgItemMessage(hDlg, CP_ALL_CHAR_LB,LB_GETTEXT,
  4841.                             (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));
  4842.                         SetDlgItemText(hDlg, CP_AFT_PLAYER_M,szBuf);
  4843.                         setNo=(int)dwIndex;
  4844.                     }
  4845.                     break;
  4846.                 case CP_EXEC_B:
  4847.                     if(setNo==255)
  4848.                         break;
  4849.                     if (men[rank[setNo]].mode==0) {
  4850.                         Member[3].men = rank[setNo];
  4851.                         init_para(3);    /* init_network(3); */
  4852.                         init_man(Member[3].men);
  4853.                         save_all_man();
  4854.                         EndDialog(hDlg, TRUE);
  4855.                     } else if (men[rank[setNo]].mode!=0) {
  4856.                         MessageBox(hDlg, "é╗é╠âLâââëâNâ^ü[é╔é═ò╧ìXé┼é½é▄é╣é±","î≡æπ", MB_ICONEXCLAMATION|MB_OK);
  4857.                     }
  4858.                     break;
  4859.                 case CP_CANSEL_B:
  4860.                     EndDialog(hDlg, TRUE);
  4861.                     break;
  4862.             }
  4863.     }
  4864.     return FALSE;
  4865. }
  4866.  
  4867. BOOL FAR PASCAL _export    ChgnDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4868. {
  4869. static char    playerName[32];
  4870.  
  4871.     switch (message) {
  4872.         case WM_INITDIALOG :
  4873. /*            âJü[â\âïé╠ò╧ìX    */
  4874.             SetCursor(winCursor[1]);
  4875.             ShowCursor(TRUE);
  4876.             SetDlgItemText(hDlg, CN_NOW_PLAYER_M,men[Member[3].men].name);
  4877.             memset(playerName,0x00,32);
  4878.             break;
  4879.         case WM_COMMAND :
  4880.             switch (wParam) {
  4881.                 case CN_EXEC_B:
  4882.                     GetDlgItemText(hDlg, CN_CHG_NAME_ET ,(LPSTR)playerName, 32);
  4883.                     if (strlen(playerName)>12) {
  4884.                         MessageBox(hDlg, "û╝æOé¬Æ╖é╖é¼é▄é╖","ò╧ìX", MB_ICONEXCLAMATION|MB_OK);
  4885.                         break;
  4886.                     }
  4887.                     if (strchr(playerName,' ')!=NULL) {
  4888.                         MessageBox(hDlg, "û╝æOé╠è╘é╔âXâyü[âXé═ôⁿéΩé╚éóé┼é¡é╛é│éó","ò╧ìX", MB_ICONEXCLAMATION|MB_OK);
  4889.                         break;
  4890.                     }
  4891.                     if (playerName[0]!='\0'&&playerName[0]!=' ') {
  4892.                     strcpy(men[Member[3].men].name,playerName);
  4893.                         init_para(3);    /* init_network(3); */
  4894.                         init_man(Member[3].men);
  4895.                         save_all_man();
  4896.                     }
  4897.                     EndDialog(hDlg, TRUE);
  4898.                     break;
  4899.                 case CN_CANSEL_B:
  4900.                     EndDialog(hDlg, TRUE);
  4901.                     break;
  4902.             }
  4903.     }
  4904.     return FALSE;
  4905. }
  4906.  
  4907. BOOL FAR PASCAL _export    ChrEDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4908. {
  4909. char    msg[64];
  4910.  
  4911.     switch (message) {
  4912.         case WM_INITDIALOG :
  4913. /*            âJü[â\âïé╠ò╧ìX    */
  4914.             SetCursor(winCursor[1]);
  4915.             ShowCursor(TRUE);
  4916.             memset(msg,0x00,64);
  4917.             break;
  4918.         case WM_COMMAND :
  4919.             switch (wParam) {
  4920.                 case IDOK:
  4921.                     GetDlgItemText(hDlg, IDC_EDIT1 ,(LPSTR)msg, 32);
  4922.                     if (strlen(msg)>12) {
  4923.  
  4924.                         MessageBox(hDlg, "û╝æOé¬Æ╖é╖é¼é▄é╖","ôoÿ^", MB_ICONEXCLAMATION|MB_OK);
  4925.                         break;
  4926.                     }
  4927.                     if (strchr(msg,' ')!=NULL) {
  4928.                         MessageBox(hDlg, "û╝æOé╠è╘é╔âXâyü[âXé═ôⁿéΩé╚éóé┼é¡é╛é│éó","ôoÿ^", MB_ICONEXCLAMATION|MB_OK);
  4929.                         break;
  4930.                     }
  4931.                     if (msg[0]!='\0'&&msg[0]!=' ') {
  4932.                         strcpy(men[Member[3].men].name,msg);
  4933.                         save_all_man();
  4934.                     }
  4935.                     EndDialog(hDlg, TRUE);
  4936.                     break;
  4937.                 case IDCANCEL:
  4938.                     EndDialog(hDlg, TRUE);
  4939.                     break;
  4940.             }
  4941.     }
  4942.     return FALSE;
  4943. }
  4944.  
  4945. BOOL FAR PASCAL _export    FddsDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  4946. {
  4947. char    driveName[64];
  4948.  
  4949.     switch (message) {
  4950.         case WM_INITDIALOG :
  4951. /*            âJü[â\âïé╠ò╧ìX    */
  4952.             SetCursor(winCursor[1]);
  4953.             ShowCursor(TRUE);
  4954.             SetDlgItemText(hDlg ,FD_IN ,"A:");
  4955.             PostMessage(hDlg, WM_PAINT, 0 ,0L);
  4956.             break;
  4957.         case WM_COMMAND :
  4958.             switch (wParam) {
  4959.                 case FD_OK:
  4960.                     GetDlgItemText(hDlg, FD_IN ,(LPSTR)driveName, 32);
  4961.                     if (driveName[0]=='\0'&&driveName[0]==' ')
  4962.                         break;
  4963.                     if (driveName[0]>='a'&&driveName[0]<='z') {
  4964.                         fddNo=(int)(driveName[0]-'a');
  4965.                         EndDialog(hDlg, TRUE);
  4966.                         break;
  4967.                     }
  4968.                     if (driveName[0]>='A'&&driveName[0]<='Z') {
  4969.                         fddNo=(int)(driveName[0]-'A');
  4970.                         EndDialog(hDlg, TRUE);
  4971.                         break;
  4972.                     }
  4973.                     MessageBox(hDlg, "òsÉ│é╚âhâëâCâuû╝é┼é╖","WARNING", MB_ICONEXCLAMATION|MB_OK);
  4974.                     break;
  4975.                 case FD_NG:
  4976.                     EndDialog(hDlg, FALSE);
  4977.                     fddNo=255;
  4978.                     return FALSE;
  4979.             }
  4980.             break;
  4981.     }
  4982.     return FALSE;
  4983. }
  4984.  
  4985. int    EditListData(char *nameDat,char *rankDat,char *monDat,int cnt)
  4986. {
  4987. int            fh1;
  4988. long        fileSize;
  4989. OFSTRUCT    openBuf1;
  4990. char       *readBuf;
  4991. char       *point;
  4992. int            i,j;
  4993. char        nameBuf[16];
  4994. char        rank_c[3];
  4995. char        money_c[7];
  4996. int            rank;
  4997.  
  4998.     if ((fh1=OpenFile("man.dat",&openBuf1,OF_SHARE_DENY_READ))==HFILE_ERROR)
  4999.         return FALSE;
  5000.     fileSize=_llseek(fh1,0L,2);
  5001.     readBuf=malloc((int)fileSize);
  5002.     fdCnt=(int)(fileSize/36L);
  5003.     _llseek(fh1,0L,0);
  5004.     _lread( fh1,readBuf,(UINT)fileSize);
  5005.     _lclose(fh1);
  5006.     memset(nameBuf,0x00,16);
  5007.     memset(rank_c,0x00,3);
  5008.     memset(money_c,0x00,7);
  5009.     memcpy(nameBuf,&readBuf[4+36*cnt],12);
  5010.     memcpy(rank_c,&readBuf[4+36*cnt+13],2);
  5011.     memcpy(money_c,&readBuf[4+36*cnt+16],6);
  5012.     rank=atoi(rank_c);
  5013.     for (j=0 ; j<12 ; j++) {
  5014.         if (nameBuf[j]!=' ') {
  5015.             point=(char *)&nameBuf[j];
  5016.             break;
  5017.         }
  5018.     }
  5019.     i=strlen(point);
  5020.     if (rank==0) {
  5021.         strcpy(nameDat,point);
  5022.         strcpy(rankDat,"û╝Él");
  5023.         strcpy(monDat ,money_c);
  5024.     } else {
  5025.         strcpy(nameDat ,point);
  5026.         sprintf(rankDat,"æµ%2dê╩",rank);
  5027.         strcpy(monDat  ,money_c);
  5028. /*        memcpy( line    ,point,i);
  5029.         memcpy(&line[15],"æµ",2);
  5030.         memcpy(&line[17],rank_c,2);
  5031.         memcpy(&line[19],"ê╩",2);
  5032.         memcpy(&line[24],money_c,6);
  5033. */
  5034.     }
  5035.     free(readBuf);
  5036.     return TRUE;
  5037. }
  5038.     
  5039.  
  5040. BOOL FAR PASCAL _export    MemiDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  5041. {
  5042. char    name[16];
  5043. char    rank[8];
  5044. char    money[8];
  5045. int    i;
  5046.  
  5047.     switch (message) {
  5048.         case WM_INITDIALOG :
  5049. /*            âJü[â\âïé╠ò╧ìX    */
  5050.             SetCursor(winCursor[1]);
  5051.             ShowCursor(TRUE);
  5052.             SendDlgItemMessage(hDlg, MEM_INFO__LIST1,
  5053.                                 LB_RESETCONTENT, 0, 0L);
  5054.             PostMessage(hDlg, WM_USER+106, 0 ,0L);
  5055.             return TRUE;
  5056.         case WM_USER+106 :
  5057.             for (i=0 ; i<17 ; i++) {
  5058.                 memset(name, 0x00,16);
  5059.                 memset(rank, 0x00,8);
  5060.                 memset(money,0x00,8);
  5061.                 if (EditListData(name,rank,money,i)!=FALSE) {
  5062.                     SetDlgItemText(hDlg, IDC_NAME1+i*3,name);
  5063.                     SetDlgItemText(hDlg, IDC_RANK1+i*3,rank);
  5064.                     SetDlgItemText(hDlg,IDC_MONEY1+i*3,money);
  5065.                 }
  5066.             }
  5067.             return TRUE;
  5068.         case WM_COMMAND :
  5069.             switch (wParam) {
  5070.                 case MEM_INFO_OK:
  5071.                     EndDialog(hDlg, TRUE);
  5072.                     return FALSE;
  5073.             }
  5074.     }
  5075.     return FALSE;
  5076. }
  5077.  
  5078.  
  5079.  
  5080. BOOL FAR PASCAL _export    AbouDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam)
  5081. {
  5082.  
  5083.     switch (message) {
  5084.         case WM_INITDIALOG :
  5085. /*            âJü[â\âïé╠ò╧ìX    */
  5086.             SetCursor(winCursor[1]);
  5087.             ShowCursor(TRUE);
  5088.             return TRUE;
  5089.         case WM_COMMAND :
  5090.             switch (wParam) {
  5091.                 case IDC_OK:
  5092.                     EndDialog(hDlg, TRUE);
  5093.                     return FALSE;
  5094.             }
  5095.     }
  5096.     return FALSE;
  5097. }
  5098.